ㅇhttps://www.acmicpc.net/problem/5430
5430번: AC
각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.
www.acmicpc.net
뭔가 딱봐도 deque를 써야할 것 같은 문제였다.
배열의 pop(0) 보다 deque의 popleft가 더 빠르기 때문이다.
처음에 빈 배열이 들어올 때, 그걸 아무것도 들어있지 않은 배열로 입력받아야 하는데
string형태로 받으면 얘가 [''] 이런 형태로 입력해버린다.
그래서 처음에 입력받을때 int형으로 받았다가, 마지막에 str형으로 변환해준다.
꽤 비효율적인 방법인 것 같으나 어쨌든 통과는했다.
import sys
from collections import deque
input = sys.stdin.readline
TC = int(input())
for tc in range(TC):
isReversed = False
isError = False
text = input().rstrip()
n = int(input())
try:
nlist = list(map(int, (input().rstrip()[1:-1].split(","))))
except:
nlist = []
queue = deque()
for i in nlist:
queue.append(i)
for order in text:
if order == "R":
isReversed = not isReversed
elif order == "D":
if len(queue) == 0:
isError = True
break
else:
if isReversed == False:
queue.popleft()
else:
queue.pop()
result = list(map(str, queue))
if isError == True:
print("error")
else:
if isReversed == False:
print("[" + ",".join(result) + "]")
else:
print("[" + ",".join(result[::-1]) + "]")

'알고리즘' 카테고리의 다른 글
| 백준 14284 간선 이어가기 2 - 골드5 [파이썬] (0) | 2022.11.11 |
|---|---|
| 백준 13023 ABCDE - 골드5 [파이썬] (0) | 2022.11.09 |
| 프로그래머스 [1차]캐시 - level2 [파이썬] (0) | 2022.11.04 |
| 백준 1543 문서 검색 - 실버4 [파이썬] (0) | 2022.10.14 |
| 백준 1613 역사 - 골드3 [파이썬] (0) | 2022.10.11 |