[BOJ/Python] 5430 : AC

정나영·2023년 11월 2일
0

👉 문제 링크

👉 풀이

R이 홀수일 경우에만 뒤집기를 수행한다. -> R 개수 카운팅 변수가 필요하겠지?
배열 길이가 0이면 초기화!

👉 전체 코드

from collections import deque
import sys
input = sys.stdin.readline

t = int(input())

for _ in range(t):
    p = input().strip()
    n = int(input())
    arr = input().strip()

    d = deque(arr[1:-1].split(','))
    
    if n == 0:
        d =  deque()    

    r_cnt = 0
    for i in range(len(p)):
        # R이 나온 경우 값만 카운팅하여 배열이 뒤집히는지 안뒤집히는지만 판별
        if p[i] == 'R':
            r_cnt += 1
        elif p[i]  ==  'D':
            if len(d) == 0:
                print("error")
                break
            else:
                # 원래 상태인 경우에는 앞에서 제거
                if r_cnt % 2 == 0: 
                    d.popleft()
                # 뒤집힌 경우에는 뒤에서 제거
                else:
                    d.pop()
                    
    else:
        if r_cnt %  2 == 1:
            d.reverse()
    
        print('[' + ','.join(d) + ']' )

배열이 [x1, ... , xn]의 형태로 입력된다.
그대로 덱에 넣으면 괄호와 쉼표까지 같이 들어가므로,
숫자만 담기 위해

dq = deque(arr[1:-1].split(','))

을 검색해서 사용했다.

0개의 댓글