import sys
import ast
from collections import deque
input = sys.stdin.readline
for _ in range(int(input())):
error = False
func = deque(list(input()))
num = int(input())
arr = deque(ast.literal_eval(input()))
while func:
first = func.popleft()
if first == 'D':
if len(arr) == 0:
error = True
break
arr.popleft()
if first == 'R':
if func and func[0] == 'R':
func.popleft()
continue
else:
arr.reverse()
continue
if error: print("error")
else: print("[" + ",".join(map(str, arr)) + "]")
시간초과 ㄷㄷ
알고보니 reverse는 딱 한 번만 되어야함
import sys
import ast
from collections import deque
input = sys.stdin.readline
for _ in range(int(input())):
error = False
funcs = input()
num = int(input())
arr = deque(ast.literal_eval(input()))
flag = 0
for func in funcs:
if func == 'D':
if len(arr) == 0:
error = True
break
if flag % 2 == 0:
arr.popleft()
else:
arr.pop()
if func == 'R':
flag += 1
if error: print("error")
else:
if flag % 2 == 0:
print("[" + ",".join(map(str, arr)) + "]")
else:
print("[" + ",".join(map(str, reversed(arr))) + "]")
ast
모듈을 처음 알았다.
이거랑 flag로 한 번만 역정렬할 수 있다는 걸 알았을 때 진짜 뭔가 소름돋았다ㄷㄷ
이런식으로 구현 방법만 알면 쉽게 풀 수 있는 문제여따
(오히려 마지막에 문자열 보여주는게 화 잔뜪남)