공부하고 기록하는, 경제학과 출신 개발자의 노트

프로그래밍/코딩테스트 문제풀이

[Python] 백준 11403. 경로 찾기

inspirit941 2020. 2. 24. 14:27
반응형

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

 

bfs나 dfs로 풀 수 있는 문제의 대표적 예시.

 

import sys
from collections import deque
n = int(sys.stdin.readline())
maps = [list(map(int, sys.stdin.readline().split())) for _ in range(n)]
# y 기준으로 x 탐색
def bfs(start, end, maps):
queue = deque()
queue.append(start)
visited = set()
while queue:
x = queue.popleft()
visited.add(x)
next_row = maps[x]
for i in range(len(next_row)):
if next_row[i] == 1:
# 갈 수 있는 곳이 도착지일 경우
if i == end:
return 1
# 아직 방문하지 않은 row일 경우
elif i not in visited:
queue.append(i)
visited.add(i)
return 0
answer = [[0 for _ in range(n)] for _ in range(n)]
for y in range(n):
for x in range(n):
answer[y][x] = bfs(y, x, maps)
print(*answer[y])
반응형