SWEA 4013 특이한 자석(with Python)

daeungdaeung·2021년 10월 5일
0
T = int(input())

for tc in range(1, T+1):
    K = int(input())
    info = [list(map(int, input().split())) for _ in range(4)]

    for turn in range(K):
        # 회전 여부 체크 리스트
        is_rotate = [0, 0, 0, 0]
        which, direction = map(int, input().split())
        which -= 1
        is_rotate[which] = direction

        # 기준의 왼쪽으로 가면서 회전하는지 체크
        for i in range(which-1, -1, -1):
            if info[i+1][6] != info[i][2]:
                is_rotate[i] = -is_rotate[i+1]
            else:
                break

        # 기준의 오른쪽으로 가면서 회전하는지 체크
        for i in range(which+1, 4):
            if info[i-1][2] != info[i][6]:
                is_rotate[i] = -is_rotate[i-1]
            else:
                break

        # 회전해야 하는 친구는 회전하기
        for idx, dir in enumerate(is_rotate):
            if dir == 1:
                last_elem = info[idx].pop()
                info[idx] = [last_elem] + info[idx]
            elif dir == -1:
                first_elem = info[idx].pop(0)
                info[idx].append(first_elem)

    # 각 톱니바퀴의 s를 확인하여 점수 계산
    answer = 0
    for i in range(4):
        if info[i][0] == 1:
            answer += 2**i

    print(f'#{tc} {answer}')
profile
개발자가 되고싶읍니다...

0개의 댓글