파이썬의 deque를 활용하는 문제였다.
그런데 처음에 계속 시간초과가 나서 코드를 수정하였고
이후로는 답이 틀렸다고 나와서 또 코드를 수정하였다.
간과한 점이 있었는데
문제를 꼼꼼하게 고민해보는 습관을 좀 길러야 할 것 같다.
이 문제를 풀면서 주의해야 할 점은
1. R이 두번 나올 경우 역순의 역순 즉, 원래 상태와 비슷하기 때문에 R의 개수를 세어서 짝수인 경우는
굳이 역순으로 바꿔줄 필요가 없다.
2. D를 수행할 때 배열에 아무것도 들어가 있지 않는다면 error를 출력해야 하지만
만약 R을 수행할 때 역시 배열에 아무것도 들어가 있지 않는다면 그대로 빈 배열 []를 출력해야 한다.
이 두가지를 고려해서 다시 코드를 작성하였더니 통과하였다.
import sys
from collections import deque
input = sys.stdin.readline
for _ in range(int(input())):
p = input()
n = int(input())
lst = str(input())
if n != 0:
lst=deque(lst[1:-2].split(','))
else:
lst=deque([])
rev=0
flag=0
for i in p:
if i == 'R':
rev +=1
else:
if i == 'D':
if len(lst)==0:
flag=1
print('error')
break
else:
if rev %2 == 0:
lst.popleft()
else:
lst.pop()
if flag != 1:
if rev %2 != 0:
lst.reverse()
print('[', end='')
print(*lst,sep=',', end='')
print(']')
728x90
'자료구조 & 알고리즘 & cs > CodingTest' 카테고리의 다른 글
[python] 백준 11660번 - 구간 합 구하기 5 (0) | 2023.04.13 |
---|---|
[python] 백준 2559번 - 수열 (0) | 2023.04.12 |
[python] 백준 24479번, 24444번 - DFS, BFS (0) | 2023.03.28 |
[python] 백준 18870번 - 좌표압축 (시간초과 문제) (0) | 2023.03.16 |
[python] 백준 2108번 - 통계학 (0) | 2023.03.16 |