문제
https://www.acmicpc.net/problem/3190
코드
from collections import deque
n = int(input())
k = int(input())
apple = [list(map(int, input().split())) for _ in range(k)]
l = int(input())
dict = {}
for _ in range(l):
a, b = input().split()
dict[int(a)] = b
array = [[0] * (n + 1) for _ in range(n + 1)]
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
def Rotate(i):
if i < 0:
return 3
elif i > 3:
return 0
else:
return i
for i in range(k):
a, b = apple[i]
array[a][b] = 2
def search():
queue = deque()
array[1][1] = 1
queue.append([1, 1])
s = 0
d = 1
nx, ny = 1, 1
while True:
s += 1
nx += dx[d]
ny += dy[d]
if nx < 1 or nx > n or ny < 1 or ny > n or array[nx][ny] == 1:
return s
if array[nx][ny] == 2:
queue.append([nx, ny])
array[nx][ny] = 1
if array[nx][ny] == 0:
queue.append([nx, ny])
array[nx][ny] = 1
rx, ry = queue.popleft()
array[rx][ry] = 0
if s in dict:
dire = dict[s]
if dire == 'L':
d = Rotate(d - 1)
else:
d = Rotate(d + 1)
print(search())
'문제풀이 > 기타' 카테고리의 다른 글
[파이썬] [기타] 백준 6588 골드하브의 추측 (0) | 2022.12.30 |
---|---|
@[파이썬] [스택] 백준 9935 문자열 폭발 (0) | 2022.12.19 |
[파이썬] [완전탐색] 백준 1107 리모컨 (0) | 2022.05.03 |
[파이썬] [수학] 백준 1011 Fly me (0) | 2022.04.26 |
[파이썬] [재귀] 백준 11729 하노이 탑 (0) | 2022.04.04 |