일상 코딩
[python] 백준 알고리즘 5397번 키로거, 문자열 풀이 본문
728x90
https://www.acmicpc.net/problem/5397
T = int(input())
for _ in range(T):
L = ""
R = ""
S = input()
for s in S:
if '<' == s:
if L:
R += L[-1]
L = L[:-1]
elif '>' == s:
if R:
L += R[-1]
R = R[:-1]
elif '-' == s:
if L:
L = L[:-1]
else:
L += s
L += R[::-1]
print(L)
입력예시
2
<<BP<A>>Cd-
ThIsIsS3Cr3t
출력예시
BAPC
ThIsIsS3Cr3t
Left Stack | Cursor | Right Stack |
Stack: | | | :Stack |
Stack 2개를 양쪽으로 배치하고, 중앙엔 커서를 배치한 방식으로 풀어준다.
커서가 '<' 왼쪽으로 이동시 왼쪽에 있던 문자를 오른쪽 stack으로 옮겨 준다.
반대로 '>' 오른쪽으로 이동시 오른쪽에 있던 문자를 왼쪽 stack으로 옮겨주는 방법으로 풀어준다.
보통 List를 사용하지만
문자열을 사용해서 풀어보았다.
728x90
'코딩테스트 > 백준 online Judge' 카테고리의 다른 글
[python] 백준 알고리즘 1074번 Z, 다이나믹 프로그래밍 풀이법 (0) | 2021.11.10 |
---|---|
[python] 백준 10989번 수 정렬하기 3, 계수 정렬 및 readline() 함수 적용. (0) | 2021.11.09 |
[python] 백준 알고리즘 1966번 프린터 큐, 튜플 사용없는 풀이 (0) | 2021.11.06 |
[python] 백준 알고리즘 1874번 스택 수열 풀이 (0) | 2021.11.05 |
[python] 백준 알고리즘 17413번 단어 뒤집기 2, 구현 문자열 합치기 (0) | 2021.10.17 |