단순 구현
문제였지만 작은 실수 하나로 1시간동안 삽질했다. 방향을 결정하는 dy, dx 리스트를 잘못 선언했다. -1의 값을 줘야 해당 grid에서 위쪽으로 이동한다는 것을 망각하지 말자.
- 북: 0, 동: 1, 남: 2, 서: 3
- dx = [0, 1, 0, -1]
- dy = [-1, 0, 1, 0]
import sys
input = sys.stdin.readline
dx = [0, 1, 0, -1]
dy = [-1, 0, 1, 0]
grid = []
n, m = map(int, input().split())
rY, rX, dir = map(int, input().split())
for _ in range(n):
grid.append(list(map(int, input().split())))
cnt = 0
while True:
if grid[rY][rX] == 0:
grid[rY][rX] = 2
cnt += 1
clean = True
for i in range(4):
tmpY = rY + dy[i]
tmpX = rX + dx[i]
if grid[tmpY][tmpX] == 0:
clean = False
break
if clean:
rY += dy[(dir + 2) % 4]
rX += dx[(dir + 2) % 4]
if grid[rY][rX] == 1:
print(cnt)
break
else:
dir = (dir + 3) % 4
tmpY = rY + dy[dir]
tmpX = rX + dx[dir]
if grid[tmpY][tmpX] == 0:
rY = tmpY
rX = tmpX