https://www.acmicpc.net/problem/2178
내 풀이
from collections import deque
def solution():
n,m = map(int,input().split())
graph=[]
for _ in range(n):
graph.append(list(map(int,input())))
dx=[1,-1,0,0]
dy=[0,0,1,-1]
queue = deque([(0,0)])
while queue:
x,y=queue.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0<=nx <n and 0<=ny <m:
if graph[nx][ny]==1:
graph[nx][ny]= graph[x][y] +1
queue.append((nx,ny))
return graph[n-1][m-1]
print(solution())
다른사람의 풀이
BFS 대표 문제이다.
n x m 크기의 그래프를 받아주고
graph를 초기화 해준다.
dx -> x가 상하좌우로 이동할때 x의 값
dy -> y가 상하좌우로 이동할때 y의 값
deque의 특징이라고 한다면 좌,우 어디로든 insert,pop할 수 있다.
'취준 > 백준' 카테고리의 다른 글
24479 - 파이썬 (0) | 2022.07.11 |
---|---|
18352 - 파이썬 (0) | 2022.07.07 |
2004 - 백준 (0) | 2022.05.11 |
1676 - 백준 (0) | 2022.05.11 |
9375 - 파이썬 (0) | 2022.05.09 |