728x90
반응형
https://www.acmicpc.net/problem/11403
최종 코드
import sys
sys.setrecursionlimit(10001)
def dfs(now, j):
global visit
for v, e in enumerate(graph[now]):
if e and not visit[v]:
visit[v] = 1
dfs(v, j)
input = sys.stdin.readline
N = int(input())
graph = []
for _ in range(N):
graph.append(list(map(int, input().split())))
for i in range(N):
line = ""
for j in range(N):
visit = [0] * N
dfs(i, j)
if visit[j]: line += "1 "
else: line += "0 "
print(line)
풀이 과정
풀이 시간 20분
import sys
#최대 100x100 그래프를 탐색해야하므로 재귀 한계를 늘려준다
sys.setrecursionlimit(10001)
def dfs(now, j):
global visit
#now 정점에 연결된 간선을 탐색한다
for v, e in enumerate(graph[now]):
#간선이 있으면서 이전에 방문하지 않은 정점인 경우, 탐색을 이어나간다
if e and not visit[v]:
visit[v] = 1
dfs(v, j)
input = sys.stdin.readline
N = int(input())
graph = []
for _ in range(N):
graph.append(list(map(int, input().split())))
for i in range(N):
line = ""
for j in range(N):
#i에서 j로 가는 경로가 있는지 탐색한다
visit = [0] * N
dfs(i, j)
#경로가 있는 경우,
if visit[j]: line += "1 "
#경로가 없는 경우,
else: line += "0 "
print(line)
#시간복잡도 = O(N^2*(V+E)), 공간복잡도 = O(n)
728x90
반응형
'코테 노트 > 백준' 카테고리의 다른 글
백준 9466 텀 프로젝트 Python 3 (0) | 2022.02.17 |
---|---|
백준 2468 안전 영역 Python 3 (0) | 2022.02.16 |
백준 2667 단지번호붙이기 Python 3 (0) | 2022.02.15 |
백준 11724 연결 요소의 개수 Python 3 (0) | 2022.02.14 |
백준 1012 유기농 배추 Python 3 (0) | 2022.02.14 |