728x90
문제
풀이
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를 돌리는지 판단을 하도록 하면 시간복잡도를 대폭 줄일 수 있다.
'PS' 카테고리의 다른 글
[백준] 10814번 : 나이순 정렬(sort 함수 key)- 파이썬[Python] (0) | 2022.01.11 |
---|---|
[백준] 2108번 : 통계학(counter)- 파이썬[Python] (0) | 2022.01.10 |
[백준] 18258번 : 큐2(큐)- 파이썬[Python] (0) | 2022.01.08 |
[백준] 1874번 : 스택 수열(스택)- 파이썬[Python] (0) | 2022.01.08 |
[백준] 17298번 : 오큰수(스택)- 파이썬[Python] (0) | 2022.01.05 |
댓글