코딩테스트 대비/BOJ

[Baekjoon/Python] 5403번: AC - 효과는 굉장했다!

bluetag_boy 2022. 3. 9. 02:56
반응형
 

5430번: AC

각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.

www.acmicpc.net

 

알고리즘 분류

  • 구현
  • 자료 구조
  • 문자열
  • 파싱

 

 

SOLUTION

import sys
from collections import deque

T = int(sys.stdin.readline())

for _ in range(T):
    p = sys.stdin.readline()
    n = int(sys.stdin.readline())
    array = deque(sys.stdin.readline().rstrip()[1:-1].split(','))
    
    if n == 0:
        array = deque()

    state = True
    cnt = 0

    for i in p:
        # cnt가 홀수면 뒤집고, cnt가 짝수면 그대로
        if i == 'R':
            cnt += 1

        elif i == 'D':
            if array:
                # 뒤집어진 상태이기 때문에 원래 배열의 마지막 수를 버림
                if cnt % 2 == 1:
                    array.pop()
                
                # 원래 배열 상태이기 때문에 첫번째 수를 버림
                else:
                    array.popleft()

            else:
                print("error")
                state = False
                break

    if state:
        if cnt % 2 == 1:
            array.reverse()
            print("[" + ",".join(array) + "]")

        else:
            print("[" + ",".join(array) + "]")