[baekjoon] 키로거

김민서·2024년 1월 8일
0

알고리즘 문제풀이

목록 보기
23/47

링크텍스트
비밀번호 창에서 입력한 키가 주어졌을 때, 비밀번호를 알아내는 프로그램을 작성하시오. 키보드로 입력한 키는 알파벳 대문자, 소문자, 숫자, 백스페이스, 화살표이다.

오늘의 자료구조 주제는 Linked List이지만 스택이 먼저 떠올라 스택으로 구현하였다.


n = int(input())

for _ in range(n):
	pw_input = input()
    
    pw_answer = []		# 스택
    temp = []			# 스택
    
    for word in pw_input:
    	if word == "<":
        	if pw_answer:
            	temp.append(pw_answer.pop())
        elif word == ">"
        	if temp:
            	pw_answer.append(temp.pop())
        elif word: "-" 			# 백스페이스
        	if pw_answer:
            	pw_answer.pop()
        else:					# 정상적인 단어 
        	pw_answer.append(word)
            
   print(''.join(pw_answer),''.join(temp[::-1],sep="")
  • ::-1 -> 배열 역순으로 출력하기.

그림으로 그리면서 구현하면 쉽게 이해 가능하다.

0개의 댓글