yha97 2022. 10. 17. 13:06

날짜 : 2022. 10. 17

사용 언어 : python

 

문제

 

 

코드

import sys

n = int(sys.stdin.readline())
stack = []
for _ in range(n):
    command = sys.stdin.readline().strip() # 명령어 입력
    if command[:4] == "push":
        temp, num = command.split()
        stack.append(int(num))
    else:
        if command == "top":
            if len(stack) == 0:
                print(-1)
            else:
                print(stack[-1])
        elif command == "size":
            print(len(stack))
        elif command == "empty":
            if len(stack) == 0:
                print(1)
            else:
                print(0)
        elif command == "pop":
            if len(stack) == 0:
                print(-1)
            else:
                print(stack.pop(-1))

 

 

알게된 점

- 기본적인 스택 문제였고 명령어를 구분하는 것과 명령어에 해당하는 메소드를 적절하게 활용하는 것이 키포인트였다.

- 일반 문자열 한 줄을 입력받기 위해서는 strip()을 이용하자.

- 맨 앞, 뒤의 공백을 저절로 삭제해주기 때문에 sys.stdin.readline()을 활용할 때 같이 사용한다면 맨 뒤에 입력되는 개행문자는 저절로 생략된다.

 

 

 

참고 사이트