반응형

bfs로 값이 1인 좌표를 탐색하는 문제.
한 번 1인 지점을 방문하면, 그 지점의 값을 0으로 바꾸는 식으로 중복탐색을 막을 수 있다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from collections import deque | |
N, M = map(int, input().split()) | |
dirs = [(1,0), (-1,0), (0,1), (0,-1)] | |
dist = [[0 for _ in range(M)] for _ in range(N)] | |
maps = [list(map(int, list(input()))) for _ in range(N)] | |
queue = deque() | |
queue.append((0,0)) | |
dist[0][0] = 1 | |
while queue: | |
cur_y, cur_x = queue.popleft() | |
maps[cur_y][cur_x] = 0 | |
for i in range(4): | |
nxt_y, nxt_x = cur_y + dirs[i][0], cur_x + dirs[i][1] | |
if 0 <= nxt_y < len(maps) and 0 <= nxt_x < len(maps[0]) and maps[nxt_y][nxt_x] == 1: | |
queue.append((nxt_y, nxt_x)) | |
dist[nxt_y][nxt_x] = dist[cur_y][cur_x] + 1 | |
maps[nxt_y][nxt_x] = 0 | |
print(dist[N-1][M-1]) | |
반응형
'프로그래밍 > 코딩테스트 문제풀이' 카테고리의 다른 글
[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 호텔 방 배정 (Level 4) (0) | 2020.04.02 |
---|---|
[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 크레인 인형뽑기 게임 (Level 2) (0) | 2020.04.01 |
[Python] 백준 1759. 암호 만들기 (0) | 2020.03.26 |
[Python] 프로그래머스. 2019 카카오 recruit - 무지의 먹방 라이브 (Level 3) (0) | 2020.03.25 |
[Python] 프로그래머스. 2018 카카오 recruit - 캐시 (Level 2) (0) | 2020.03.24 |