코딩고치

[파이썬][백준] 5397번: 키로거 본문

파이썬/백준 문제

[파이썬][백준] 5397번: 키로거

코딩고치 2020. 5. 22. 16:12

1. 문제

주소: https://www.acmicpc.net/problem/5397

 

5397번: 키로거

문제 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거�

www.acmicpc.net

문제 유형: 스택, 구현, 그리디

 

풀이:

커서를 기준으로 양쪽을 나눠서 스택을 구현

 

'<': 왼쪽 스택에서 pop 하여 right에 append

 

'>': 오른쪽 스택에서 pop하여 왼쪽에 append

'-': 왼쪽 스택에서 pop만 실행

일반 문자의 경우 왼쪽 스택에 append

2. 소스 코드

testcase = int(input())

for _ in range(testcase):
    press_key = input()
    cursor_left, cursor_right = [], []
    for word in press_key:
        if word == '-':
            if cursor_left:
                cursor_left.pop()
        elif word == '<':
            if cursor_left:
                cursor_right.append(cursor_left.pop())
        elif word == '>':
            if cursor_right:
                cursor_left.append(cursor_right.pop())
        else:
            cursor_left.append(word)

    while cursor_right:
        cursor_left.append(cursor_right.pop())
    print(''.join(cursor_left))

'파이썬 > 백준 문제' 카테고리의 다른 글

[파이썬][백준] 1920번: 수 찾기  (0) 2020.05.22
[파이썬][백준] 10930번: SHA-256  (0) 2020.05.22
[파이썬][백준] 프린터 큐  (0) 2020.05.21
[파이썬][백준] 스택 수열  (0) 2020.05.21
[파이썬][백준] 블랙잭  (0) 2020.05.21
Comments