백준 3190 뱀

gmlwlswldbs·2021년 10월 17일
0

코딩테스트

목록 보기
54/130
n = int(input())
k = int(input())
g = [[0] * n for _ in range(n)]
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]
for _ in range(k):
    a, b = map(int, input().split())
    g[a-1][b-1] = 1
l = int(input())
rotate = []
time = []
for _ in range(l):
    d = 1
    a, b = map(str, input().split())
    time.append(int(a))
    if b == 'L':
        d = -1
    rotate.append(d)
k = 0
snake = [(0, 0)]
t = 1
while True:
    hx, hy = snake[-1]
    hx , hy = hx + dx[k], hy +dy[k]
    if hx < 0 or hy < 0 or hx >= n or hy >= n or (hx, hy) in snake:
        break
    snake.append((hx , hy))
    if g[hx][hy] == 1:
        g[hx][hy] = 0
    else:
        snake.remove(snake[0])
    if t in time:
        k  = (k + rotate[0]) % 4
        del rotate[0]
        del time[0]
    t += 1
print(t)

구현 문제, 시간 증가 시점에서 조금 헷갈렸다. 방향을 전환하고 시간을 증가시켜야함

0개의 댓글