728x90
반응형
풀기 전 생각해보기😮
- 시간초과가 발생한다면 자료구조를 사용해보기
- 오류가 발생한다면? : https://www.acmicpc.net/board/view/25456
풀이🛫
from collections import deque
T = int(input())
for tc in range(1, T+1):
p = list(input())
n = int(input())
inp = deque(input()[1:-1].split(','))
err = False
rcnt = 0
for i in p:
if i == 'R':
rcnt += 1
elif i == 'D':
if len(inp) > 0 and inp != deque(['']): # 여기서 문제가 발생
if rcnt % 2 == 1: # 홀수 번 뒤집기가 진행되었을 때
inp.pop()
else:
inp.popleft()
else:
err = True
break
if err:
print('error')
else:
if rcnt % 2 == 0:
print('[' + ','.join(inp) + ']')
else:
inp = list(reversed(inp))
print('[' + ','.join(inp) + ']')
핵심 정리🎁
- reverse를 for문 안에서 진행하게 되면 시간복잡도가 O(n) * N이 되므로, 다른 방법을 찾아볼 것
- deque([''])의 길이는 1이 되더라, 덱의 길이를 사용할 때 주의하자
링크💎
https://www.acmicpc.net/problem/5430
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] #14502. 연구소 (0) | 2022.12.11 |
---|---|
[백준 파이썬] #1406. 에디터 (0) | 2022.12.10 |
[백준 파이썬] #10799. 쇠막대기 (0) | 2022.12.08 |
[백준 파이썬] #2493. 탑 (0) | 2022.12.08 |
[백준 파이썬] #2636. 치즈 (1) | 2022.11.08 |