https://www.acmicpc.net/problem/14503
반례는 https://www.acmicpc.net/board/view/67476 이 글을 참고하면 된다.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
r, c, d = map(int, input().split())
maps = [list(map(int, input().split())) for _ in range(n)]
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
count = 0
while True:
if maps[r][c] == 0:
maps[r][c] = 2
count += 1
for i in range(4):
d = (d - 1) % 4
nr, nc = r + dx[d], c + dy[d]
if (-1 < nr < n) and (-1 < nc < m) and (maps[nr][nc] == 0):
r, c = nr, nc
break
else:
if maps[r - dx[d]][c - dy[d]] == 1:
print(count)
break
else:
r, c = r - dx[d], c - dy[d]
'Coding Test > 백준' 카테고리의 다른 글
[백준] / [Python] / [1916] 최소비용 구하기 (0) | 2024.04.03 |
---|---|
[백준] / [Python] / [2293] 동전 1 (0) | 2024.04.02 |
[백준] / [Python] / [1759] 암호 만들기 (0) | 2024.03.21 |
[백준] / [Python] / [15686] 치킨 배달 (0) | 2024.03.21 |
[백준] / [Python] / [7569] 토마토 (1) | 2024.03.14 |