⏰ 코딩테스트/백준 알고리즘
백준 알고리즘 - 5397 - 키로거
U-chan Seon
2021. 8. 19. 11:17
접근법
문자열의 크기가 1,000,000 이므로 단순하게 구현하라는대로 구현하면 문제를 풀 수 없다.
O(n) 의 선형시간 안에 문제를 풀 수 있는 알고리즘을 짜야 문제를 해결할 수 있다.
스택
풀이
코드
testcase = int(input())
for _ in range(testcase):
arr = list(str(input()))
stack1 = []
stack2 = []
for i in range(len(arr)):
if arr[i] == "<":
if len(stack1) != 0:
stack2.append(stack1.pop())
elif arr[i] == ">":
if len(stack2) != 0:
stack1.append(stack2.pop())
elif arr[i] == "-":
if len(stack1) != 0:
stack1.pop()
else:
stack1.append(arr[i])
print(''.join(stack1) + ''.join(stack2[::-1]))
# 2
# <<BP<A>>Cd-
# ThIsIsS3Cr3t
리스트를 붙여서 출력
''.join()
리스트 거꾸로 출력
list[::-1]