문제
https://www.acmicpc.net/problem/5397
5397번: 키로거
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입
www.acmicpc.net
풀이
n = int(input())
for _ in range(n):
list1 = []
list2 = []
ss = list(input())
for s in ss:
if s == '<':
if len(list1) != 0:
list2.append(list1.pop())
elif s=='>':
if len(list2) != 0:
list1.append(list2.pop())
elif s=='-':
if len(list1) != 0:
list1.pop()
else:
list1.append(s)
list2.reverse()
print(''.join(list1)+''.join(list2))
스택 2개를 이용해서 풀었다.
커서를 기준으로 리스트를 잘라 스택으로 표현하였다.
'코딩테스트 > Python' 카테고리의 다른 글
[Python] 백준 #5582 - 공통 부분 문자열 (0) | 2022.03.21 |
---|---|
[Python] 백준 #17615 - 볼 모으기 (0) | 2022.03.21 |
[Python] 백준 #1325 - 효율적인 해킹 (0) | 2022.03.20 |
[Python] 백준 #20546 - 기적의 매매법 (0) | 2022.03.17 |
[Python] 백준 #1343 - 폴리오미노 (0) | 2022.03.16 |