본문 바로가기

코테 공부/python

[백준] #11403 Python 세미? 플로이드 워셜

https://www.acmicpc.net/problem/11403

가중치가 없어서 플로이드 워셜처럼 가중치 min 따져서 짜야할 필욘 없었다.

근데 방향 그래프인걸 양방향이라고 당연히 생각해서 첨에 잘못나오고 슬퍼했었다..

import sys
input = sys.stdin.readline

N = int(input())

li = []

for _ in range(N):
    li.append(list(map(int, input().split())))

def Floyd(li, N):
    for k in range(N):
        for i in range(N):
            for j in range(N):
                if li[i][j] == 0 and li[i][k] == 1 and li[k][j] == 1:
                    li[i][j] = 1

Floyd(li, N)

for el in li:
    for l in el:
        print(l, end = ' ')
    print()

 

 

 

플로이드 워셜 알고리즘 공부

모든 지점에서 다른 모든 지점까지의 최단 경로를 모두 구하는 알고리즘

https://www.acmicpc.net/problem/11404

내 블로그 링크 걸기

https://tato-with.tistory.com/327

INF = int(1e9)

1e9가 무한대구나..?

가능한 최댓값이 10억 미만이라면 무한(INF)의 값으로 1e9

1e9 = 1*10의9승 = 1000000000,

2e9 = 2*10의9승 = 2000000000

2e9는 int 범위내에서 무한대 값을 나타내기 위해 사용하는 경우가 많다.

 

스터디원은

from sys import maxsize
INF = maxsize

이렇게 했더라

 

+다익스트라 알고리즘 공부 필요

이것도 내 블로그 링크 걸기