oohyoo 님의 블로그

[Python] 프로그래머스 - 가장 빠른 거리 본문

코딩테스트

[Python] 프로그래머스 - 가장 빠른 거리

oohyoo 2025. 2. 3. 23:30

[문제]

 

[풀이]

 

#입력과 출력을 자유롭게 작성해주세요
from collections import deque

def solution(chizu, sh, sw):
    queue = deque([(sh, sw, 0)])
    dh = [-1, 0, 1, 0]
    dw = [0, 1, 0, -1]
    
    while queue:
        x, y, dist = queue.popleft()
        
        if chizu[x][y] == 3:
            return dist
        
        for dir in range(4):
            cx = x+dh[dir]
            cy = y+dw[dir]
            if (0<=cx<H and 0<=cy<W and chizu[cx][cy] != 1):
                if chizu[cx][cy] == 3:
                    return dist+1
                chizu[cx][cy] = 1
                queue.append((cx, cy, dist+1))
    return -1
        
    

global H, W    
H, W = map(int, input().split())
chizu = [[0]*W for _ in range(H)]
sh, sw = map(int, input().split())
eh, ew = map(int, input().split())

chizu[eh-1][ew-1] = 3
print(solution(chizu, sh-1, sw-1))
반응형