Algorithm/Stack

[Baekjoon 2504 / python / 실버4] 스택

양선규 2024. 3. 26. 17:10
728x90
반응형
import sys

n = int(sys.stdin.readline())

stack = []
for _ in range(n):
    control = sys.stdin.readline().split()
    c = control[0]

    if c == 'push':
        stack.append(int(control[1]))
   
    elif c == 'pop':
        if len(stack) == 0:
            print(-1)
        else:
            print(stack.pop())
   
    elif c == 'size':
        print(len(stack))
   
    elif c == 'empty':
        if len(stack) == 0:
            print(1)
        else:
            print(0)

    elif c == 'top':
        if len(stack) == 0:
            print(-1)
        else:
            print(stack[-1])

 

간단하게 스택을 구현하는 문제이다. 파이썬은 따로 스택 자료구조를 구현할 필요 없이, 일반적인 리스트에 append(), pop() 메소드를 사용하면 된다.

 

스택은 후입선출 구조로, 마지막에 들어간 값이 먼저 빠져나오는 자료구조를 의미하며, push는 데이터 삽입, pop은 데이터를 꺼내는 걸 의미한다.

파이썬의 append()메소드는 스택의 push와 같고, pop()메소드는 스택의 pop과 같다.

 

명령어를 잘 입력받기만 하면 되는 간단한 문제였지만, 스택 자료구조에 대한 공부가 필요할 수 있기 때문에 난이도가 실버인 것으로 보인다.

728x90
반응형

'Algorithm > Stack' 카테고리의 다른 글

[Baekjoon 2493 / python / 골드5] 탑  (0) 2024.03.27