왼쪽
이 달라지게 되는데 현재 북(0)쪽을 보고 있다면 왼쪽은 서쪽(3)이 된다. 이를 응용하기 위해 dr, dc 배열과 modular 연산을 이용한다.dr = [-1, 0, 1, 0]
dc = [0, 1, 0, -1]
현재 방향이 1이라면 -> 배열의 0 번째 값들을 사용해 북쪽으로 이동시킬 준비를 한다.
(현재 방향 + 3) % 4 = 왼쪽회전 방향
n, m = map(int, input().split())
r, c, d = map(int, input().split())
graphs = []
for _ in range(n):
graphs.append(list(map(int, input().split())))
visited = [[False] * m for _ in range(n)]
dr = [-1, 0, 1, 0]
dc = [0, 1, 0, -1]
visited[r][c] = True
cnt = 1
while True:
flag = True
for _ in range(4):
d = (d + 3) % 4
nr = r + dr[d]
nc = c + dc[d]
if 0 <= nr < n and 0 <= nc < m and graphs[nr][nc] == 0 and not visited[nr][nc]:
visited[nr][nc] = True
cnt += 1
r = nr
c = nc
flag = False
break
if flag:
if graphs[r - dr[d]][c - dc[d]] == 1:
print(cnt)
break
else:
r, c = r - dr[d], c - dc[d]