[알고리즘/백준] 14891번 : 톱니바퀴(python)

유현민·2022년 5월 26일
0

알고리즘

목록 보기
186/253

문제

처음에 문제를 잘못 이해해서 돌리고 나서 다르면 회전시키게 풀었다...

처음에 먼저 비교를 한다. 같으면 회전 x 다르면 회전

리스트를 생성해서 현재 돌려야하는 톱니에 수를 넣고 다르면 -1을 곱해서 넣어줬다.

끝나면 rotate를 이용하여 회전

from collections import deque


def find(n, k):
    res = [0] * 5
    res[n] = k

    for i in range(n, 1, -1):  # 왼쪽 검사
        if a[i][6] == a[i - 1][2]:  # 같으면 회전 x
            break
        res[i - 1] = res[i] * -1

    for i in range(n, 4):  # 오른쪽 검사
        if a[i][2] == a[i + 1][6]:
            break
        res[i + 1] = res[i] * -1
    return res


a = {}
for i in range(1, 5):
    a[i] = deque(list(map(int, list(input()))))

for _ in range(int(input())):
    n, k = map(int, input().split())
    info = find(n, k)
    for i in range(1, 5):
        a[i].rotate(info[i])
ans = 0
if a[1][0] == 1:
    ans += 1
if a[2][0] == 1:
    ans += 2
if a[3][0] == 1:
    ans += 4
if a[4][0] == 1:
    ans += 8
print(ans)
profile
smilegate megaport infra

0개의 댓글