이 문제에서 주의해야 할 점은 크게 3가지로 정리할 수 있습니다.

-주의할 점-
a. Python에서는 양쪽 끝에서 추가/삭제가 가능한 Double Ended Queue, 즉 Deque이라는 자료형을 제공합니다. list의 경우 pop(0)으로 가장 맨앞의 값을 가져올 때는 list의 길이에 따른 O(n)의 시간이 걸리지만 deque의 popleft()는 O(1)의 시간이 걸리면서 pop(0)과 같은 기능을 합니다. 이를 잘 활용하여 봅시다.

b. 이 문제에서는 입력받는 데이터에 괄호와 쉼표 등이 모두 포함되어 있기 때문에 적절히 숫자들만 추려내야 합니다. 이때 “[]”로만 입력을 받아도 deque의 길이는 1이 되므로 길이가 0일때의 상황을 ‘예외적’으로 deque()을 통해 따로 초기화해주어야 합니다.

c. ‘R’이 주어질 때마다 매번 뒤집기를 실행하면 ‘시간 초과’가 발생합니다. 따라서 뒤집는 횟수를 counting하여 ‘홀수 번’ 일때만 최종적으로 한번의 뒤집기를 실행하면 됩니다.

문제 : 백준 5430 - AC