사과의 위치와 뱀의 이동경로가 주어질 때 이 게임이 몇 초에 끝나는지 구하기.
입력 | 출력 |
---|---|
10101111 01111101 11001110 00000010 2 3 -1 1 1 | 7 |
11111111 11111111 11111111 11111111 3 1 1 2 1 3 1 | 15 |
10001011 10000011 01011011 00111101 5 1 1 2 1 3 1 4 1 1 -1 | 6 |
10010011 01010011 11100011 01010101 8 1 1 2 1 3 1 4 1 1 -1 2 -1 3 -1 4 -1 | 5 |
: 문제 조건에 따라 구현. 회전을 위해 덱 자료구조 활용.
from collections import deque
wheels = [deque(input()) for _ in range(4)]
n = int(input())
for _ in range(n):
num, di = map(int, input().split())
num -= 1
left = wheels[num][2]
right = wheels[num][-2]
wheels[num].rotate(di)
originDi = di
# 왼쪽과 비교
di = originDi
for i in range(num-1, -1, -1):
if wheels[i][2] != right:
right = wheels[i][-2]
wheels[i].rotate(di*(-1))
di *= -1
else:
break
# 오른쪽과 비교
di = originDi
for i in range(num+1, 4):
if wheels[i][-2] != left:
left = wheels[i][2]
wheels[i].rotate(di*(-1))
di *= -1
else:
break
point = 0
if wheels[0][0] == '1': point += 1
if wheels[1][0] == '1': point += 2
if wheels[2][0] == '1': point += 4
if wheels[3][0] == '1': point += 8
print(point)