https://school.programmers.co.kr/learn/courses/30/lessons/169199
from collections import deque
def solution(board):
answer=-1
xlen=len(board[0])
ylen=len(board)
visits = [[0]*(xlen) for _ in range(ylen)]
dx = [1, -1, 0, 0]
dy = [0, 0, 1, -1]
dq=deque()
for i in range(ylen):
for j in range(xlen):
if board[i][j]=='R':
print(i, j)
dq.append([i, j, 0])
break
while dq:
y, x, cnt=dq.popleft()
if visits[y][x]==1:
continue
visits[y][x]=1
if board[y][x]=='G':
answer=cnt
break
for i in range(4):
xx=x
yy=y
while 0<=xx+dx[i] and xx+dx[i]<xlen and 0<=yy+dy[i] and yy+dy[i]<ylen:
print(xx+dx[i], yy+dy[i])
if board[yy+dy[i]][xx+dx[i]]!='D':
xx+=dx[i]
yy+=dy[i]
else:
break
dq.append([yy, xx, cnt+1])
return answer
나는 분명히 완벽한 코드를 짰다고 생각했는데 인덱스 범위 오류가 떠서 그것만 15분 찾아다녔다. 결국 마지막에 yy, xx, cnt+1을 추가해야하는것을 xx, yy, cnt+1로 해버리는 바람에 생겼다. 좀 더 꼼꼼히 풀 필요가 있겠다.