코딩테스트 준비/[백준]

[백준] 2840번 행운의 바퀴 - 파이썬

bled 2021. 7. 4. 18:16

https://www.acmicpc.net/problem/2840

 

2840번: 행운의 바퀴

첫째 줄에 마지막 회전에서 화살표가 가리키는 문자부터 시계방향으로 바퀴에 적어놓은 알파벳을 출력한다. 이때, 어떤 글자인지 결정하지 못하는 칸은 '?'를 출력한다. 만약, 상덕이가 적어놓

www.acmicpc.net

[코드]

import sys
from collections import deque

input = sys.stdin.readline

N, K = map(int, input().split())
que = deque(['?'] * N)
que2 = deque()
for i in range(K):
    num, char = input().split()
    num = int(num)
    que2.append((num, char))

cur = 0
flag = False
while que2:
    num, char = que2.popleft()
    cur += num
    if cur >= N:
        cur = cur % N
    if que[cur] == '?':
        que[cur] = char
    elif que[cur] == char:
        continue
    else:
        flag = True
        break

if flag:
    print('!')
else:
    for x in que:
        if x != '?' and que.count(x) > 1:
            print('!')
            sys.exit()

    que.rotate(-cur-1)
    que.reverse()
    while que:
        print(que.popleft(), end='')