코딩 테스트/삼성 기출

2017하_돌아가는 팔각의자(백준. 14891.톱니바퀴)

Carnival7 2024. 6. 22. 17:55

https://www.codetree.ai/training-field/frequent-problems/problems/rounding-eight-angle/description?page=3&pageSize=20

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

from collections import deque

MAX=4

a=[None]
for _ in range(MAX):
    data=list(str(input()))
    q=deque()
    for ele in data:
        q.append(int(ele))
    a.append(q)

def process(n,dir):

    # n번째로부터 왼쪽, 오른쪽으로 회전 대상 탐색
    d=[None]+[0]*MAX # 의자마다 회전할 방향 저장
    d[n]=dir
    # 왼쪽 순서대로 탐색
    for i in range(n,1,-1):
        if a[i][6]!=a[i-1][2]:
            d[i-1]=-d[i]
    # 오른쪽 순서대로 탐색
    for i in range(n,MAX):
        if a[i][2]!=a[i+1][6]:
            d[i+1]=-d[i]

    for i in range(1,MAX+1):
        dir=d[i]
        if dir==0:
            continue
        a[i].rotate(dir)

K=int(input())
for _ in range(K):
    n,d=map(int,input().split())
    process(n,d)

ans=a[1][0]*1+a[2][0]*2+a[3][0]*4+a[4][0]*8
print(ans)