Notice
Recent Posts
Recent Comments
Link
DevKim
[Python] 프로그래머스 Lv.02 - 게임 맵 최단거리 본문
728x90
programmers.co.kr/learn/courses/30/lessons/1844
[ 알고리즘 ]
BFS/DFS
[문제 접근]
BFS 최단거리 구하는 전형적인 문제이다. 최단거리를 찾기 위해 1을 찾을 때 마다 그 전의 값에 +1 을 해주고,
만약 모든 과정이 끝났는데 (=큐가 비었는데) (n,m)의 값이 아직 1이라면 벽에 막혀 지나가지 못하는 자리임을 알 수 있음
[코드]
from collections import deque
def solution(maps):
answer = 0
que=deque()
n=len(maps[0]) # 가로
m=len(maps) # 세로
dx=[-1,1,0,0]
dy=[0,0,-1,1]
que.append((0,0)) # (0,0)에서 출발
while que:
x,y=que.popleft()
for i in range(4):
xx=dx[i]
yy=dy[i]
if x+xx <0 or y+yy<0 or x+xx >=m or y+yy>=n:
continue
if maps[x+xx][y+yy]==1:
que.append((x+xx,y+yy))
maps[x+xx][y+yy]=maps[x][y]+1
if maps[m-1][n-1]==1:
answer=-1
else:
answer=maps[m-1][n-1]
return answer
728x90
'알고리즘 PS' 카테고리의 다른 글
[Python] 2018 KAKAO BLIND RECRUITMENT - 압축 (0) | 2021.03.03 |
---|---|
[Python] 프로그래머스 Lv.02 - 배달 (0) | 2021.03.03 |
[Python] 2018 카카오 BLIND RECRUITMENT - 방금 그 곡 (0) | 2021.02.24 |
[Python] 2019 카카오 BLIND RECRUITMENT - 오픈 채팅방 (0) | 2021.02.24 |
[Python] 2018 카카오 BLIND RECRUITMENT- 뉴스 클러스터링 (0) | 2021.02.24 |
Comments