코딩테스트 파이썬/파이썬 프로그래머스 2단계
게임 맵 최단거리
세용용용용
2023. 7. 26. 16:36




코딩테스트 연습 - 게임 맵 최단거리 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 코드
from collections import deque
def solution(maps):
answer = 0
move = [(0,1), (0,-1), (-1,0), (1,0)]
queue = deque([(0,0)])
#더이상 갈곳이 없을떄까지 반복
while queue:
x,y = queue.popleft()
for i in move:
xx = x+i[0]
yy = y+i[1]
#좌표 범위안에 있거나 아직 지나가지 않았을떄
if 0<=xx<len(maps) and 0<=yy<len(maps[0]) and maps[xx][yy] == 1:
maps[xx][yy] = maps[x][y]+1
queue.append((xx,yy))
#상대팀 진형 도착시
if maps[-1][-1] != 1:
answer = maps[-1][-1]
#상대팀 진형 도착할수 없을시
else:
answer = -1
return answer
solution([[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]])