PS
[백준] 5430번 : AC(덱)- 파이썬[Python]
choisanghyun
2022. 1. 10. 19:59
728x90
문제
5430번: AC
각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.
www.acmicpc.net
풀이
import sys
from collections import deque
t=int(sys.stdin.readline())
for _ in range(t):
p=sys.stdin.readline()
n=int(sys.stdin.readline())
que = deque(sys.stdin.readline().rstrip()[1:-1].split(','))
r_check=0 #R 홀수 짝수 측정
try:
for i in p:
if i=='R':
r_check+=1
elif i=='D' and n==0:
que.popleft(3)
break
elif i=='D':
if r_check%2==0:
que.popleft()
elif r_check%2!=0:
que.pop()
if r_check%2==0:
pass
elif r_check%2!=0:
que.reverse()
print("[" + ",".join(que) + "]")
except:
print("error")
이 문제는 덱이 좌/우측에서 데이터를 pop할 수 있는 기능을 이용해서 R의 개수에 따라 pop의 방향을 정하고
총 R의 수가 홀수인지 짝수인지에 따라서 마지막에 reverse를 돌리는지 판단을 하도록 하면 시간복잡도를 대폭 줄일 수 있다.