코딩테스트 연습 - 게임 맵 최단거리

[[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1

programmers.co.kr

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from collections import deque
def solution(maps):
    answer = 0
    dx = [-1100]
    dy = [00-11]
    n = len(maps)
    m = len(maps[0])
    visited = [[False* m for _ in range(n)]
    #
    # for i in visited:
    #     print(i)
 
    q = deque([(00)])
    visited[0][0= True
    while q:
        x, y = q.popleft()
        for i in range(4):
            nx = x + dx[i]
            ny = y + dy[i]
 
            if 0 <= nx < n and 0 <= ny < m:
                if not visited[nx][ny] and maps[nx][ny] == 1:
                    visited[nx][ny] = True
                    maps[nx][ny] = maps[x][y] + 1
                    q.append((nx, ny))
 
    if maps[n-1][m-1!= 1:
        return maps[n-1][m-1]
    else:
        return -1
cs

 

'알고리즘 문제풀이 with 파이썬 > 프로그래머스' 카테고리의 다른 글

[구현] 예상 대진표  (0) 2021.11.01
[DFS] 단어 변환  (0) 2021.10.30
[그리디, 투 포인터] 구명보트  (0) 2021.10.28
[구현] 프렌즈4블록  (0) 2021.10.27
[DFS] 네트워크  (0) 2021.10.10

+ Recent posts