알고리즘/백준

[백준 5430][파이썬] AC

2twix2 2022. 2. 12. 00:53

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

 

5430번: AC

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

www.acmicpc.net

 

R이 나올 때마다 뒤집으면 시간이 더 걸릴 것 같아 리스트 상태가 reverse인지 아닌지만 저장하도록 하였다.

뒤집힌 상태에서는 리스트의 가장 마지막 요소를 없애고 뒤집히지 않은 상태에서는 첫 번째 요소를 없앴다.

가장 마지막에 출력하기 직전에만 reverse 상태에 따라 뒤집을지 말지 정하도록 하였다. 

 

import sys

input = sys.stdin.readline

N = int(input())

for i in range(N):
  reverse = False
  error = False

  p = input().rstrip()
  n = int(input())

  list = input().rstrip()[1:-1].split(',')
  if n == 0:
    list = []

  for j in range(len(p)):
    if p[j] == 'R':
      reverse = not reverse

    else:
      if len(list) == 0:
        print('error')
        error = True
        break
      else:
        if reverse:
          list.pop()
        else:
          list.pop(0)

  if not error:
    if reverse:
      list.reverse()
  
    print('['+','.join(list)+']')