핵심
- 덱을 R이 나올 때마다 뒤집으면 시간 초과가 뜸 -> 길이(N)만큼 걸리기 때문
- 뒤집힌 상태인지 확인하는 변수를 만들어서 체크하면서 해결해야 함
- 길이가 0인 리스트가 들어오면 덱을 초기화 시켜줘야 함
문자열 다루기
- arr = input()[1:-1].split(',') : 입력받은 문자열에서 양옆제외하고 읽어온 후 ,을 기준으로 분리해서 값들을 배열로 저장
- deq = collections.deque(arr) : 배열 통째로 덱에 추가
- result = "[" + ",".join(map(str, deq)) + "]" , 을 사용하여 원소사이를 붙여줌
import collections
t = int(input())
ans = []
for _ in range(t):
ac = input()
n = int(input())
arr = input()[1:-1].split(',')
deq = collections.deque(arr)
flag = 0 # 뒤집은 상태인지 아닌지 확인하는 변수, 홀수면 뒤집은 것
err_count = False
if n == 0: # 길이가 0이라면 빈 덱으로 초기화
deq = []
for i in ac:
if i == "R":
flag += 1
if i == "D":
if len(deq) == 0:
ans.append("error")
err_count = True
break
else:
if flag % 2 == 0:
deq.popleft()
else:
deq.pop()
if not err_count:
if flag % 2 == 0:
result = "[" + ",".join(map(str, deq)) + "]"
ans.append(result)
else:
deq.reverse()
result = "[" + ",".join(map(str, deq)) + "]"
ans.append(result)
for i in ans:
print(i)
'Algorithm' 카테고리의 다른 글
2606 바이러스 / DFS,BFS (0) | 2025.01.22 |
---|---|
크기가 작은 부분 문자열 / 프로그래머스 (0) | 2025.01.21 |
10866 덱 / 큐 (0) | 2025.01.17 |
1966 프린터 큐 / 큐 (0) | 2025.01.16 |
이상한 문자 만들기 / 프로그래머스 (0) | 2025.01.15 |