💡문제접근
- R의 횟수가 짝수라면 배열을 두 번 뒤집는 것이기 때문에 기존 상태 그대로 유지가 된다. 하지만 R의 횟수가 홀수라면 배열을 한 번 뒤집어줘야한다. 이 부분에 초점을 맞춰서 코드를 작성했다.
- 자료구조 deque(덱)을 사용했고 조건에 따라서
pop()
과 popleft()
를 적절하게 사용했다.
💡코드(메모리 : 39232KB, 시간 : 248ms)
from collections import deque
import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
flag = True
p = input().strip()
n = int(input())
li = input().strip()[1:-1]
if li == "":
li = deque()
else:
li = deque(map(str, li.split(",")))
reverse_cnt = 0
for i in p:
if i == "R":
reverse_cnt += 1
elif i == "D":
if len(li) == 0:
print("error")
flag = False
break
if reverse_cnt % 2 == 0:
li.popleft()
else:
li.pop()
if flag:
if reverse_cnt % 2 != 0:
print("[" + ",".join(map(str, reversed(li))) + "]")
else:
print("[" + ",".join(map(str, li)) + "]")
💡소요시간 : 42m