선릉역 1번 출구

baekjoon - 10828 본문

Algorithm/Algorithm 문제풀이

baekjoon - 10828

choideu 2021. 8. 28. 20:50
import sys

def push(num):
    stack.append(num)

def size():
    return len(stack)

def empty():
    if (not stack):
        return 1
    return 0

def pop():
    if stack:
        return stack.pop()
    return -1

def top():
    if stack:
        return stack[-1]
    return -1

stack = []
for _ in range(int(input())):
    a = sys.stdin.readline().rstrip().split()
    if a[0] == "push":
        push(a[1])
    elif a[0] == "top":
        print(top())
    elif a[0] == "size":
        print(size())
    elif a[0] == "empty":
        print(empty())
    else:
        print(pop())


이 문제는 스택을 구현하는 문제이다. 

스택이란 FILO의 구조를 가지고 있는 자료구조이다. 첫 번째로 들어온 입력이 가장 나중 출력이 되는

스택에서 구현해야할 5가지 함수가 있는데 백준 10828번을 참고하면 될 것 같다. 또 문제가 크게 어렵지 않아서 설명을 안해도 될 것 같다. 

*이 문제에서 중요한 건 시간 초과인데 input.split()이 아닌 import sys를 해서 sys.stdin.readline().rstrip().split()을 해줘야 시간초과가 발생하지 않는다.

'Algorithm > Algorithm 문제풀이' 카테고리의 다른 글

baekjoon - 9012  (0) 2021.08.28
baekjoon - 9093  (0) 2021.08.28
baekjoon - 재귀  (0) 2021.08.21
baekjoon - 브루트 포스  (0) 2021.08.19
baekjoon - 기본 수학2  (0) 2021.08.18
Comments