728x90
사과를 먹고 나서 그 자리를 0으로 바꿔주지 않았었다.
풀고 나니 간단한 queue 문제
from collections import deque
N = int(input())
arr = [[0]*N for x in range(N)]
K = int(input())
for _ in range(K):
r, c = map(int, input().split())
arr[r-1][c-1] = 1
snake_moves = ['']*10001
L = int(input())
for _ in range(L):
sec, di = input().split()
snake_moves[int(sec)] = di
# snake = 0, 0
# 오른쪽부터 시계방향
delta = [(0,1),(1,0),(0,-1),(-1,0)]
# L => -1, D => +1
direction = 0 # +4 if delta < 0
res = 0
snake = deque([(0,0)])
while 1:
res += 1
cr, cc = snake[-1]
if direction < 0:
direction += 4
nr = cr + delta[direction%4][0]
nc = cc + delta[direction%4][1]
if 0 <= nr < N and 0 <= nc < N and (nr, nc) not in snake:
if arr[nr][nc]:
# 사과 먹고 그 위치 0으로 바꿔주기를 안했다.
arr[nr][nc] = 0
else:
snake.popleft()
snake.append((nr,nc))
# 이동하다가 벽을 만나거나 자기 몸통을 만나면
else:
break
# 방향전환
if snake_moves[res] == 'L':
direction -= 1
elif snake_moves[res] == 'D':
direction += 1
print(res)
'PS > Python' 카테고리의 다른 글
[BOJ_Python] 14499. 주사위 굴리기 (0) | 2021.04.05 |
---|---|
[BOJ_Python] 14500. 테트로미노 (0) | 2021.04.05 |
[BOJ_Python] 1744. 수 묶기 (0) | 2021.03.28 |
[BOJ_Python] 12871. 무한 문자열 (0) | 2021.03.28 |
[BOJ_Python] 1707. 이분 그래프 (0) | 2021.03.28 |
최근댓글