[백준] 10828 스택

nikevapormax·2022년 4월 4일
0

baekjoon

목록 보기
1/7

🦧출처

백준 10828


🦧개념

🔥 스택(stack)

스택은 데이터를 임시 저장할 때 사용하는 자료구조로, 후입선출(LIFO) 방식이다.
파이썬에는 기본적으로 스택이 구현되어 있지 않아 list를 활용한다.

스택에 데이터를 넣는 작업을 push라고 하며, list를 활용하기 때문에 list.append(a)를 활용한다.
이와 반대로 스택에 넣어진 데이터를 제거하는 작업을 pop이라 하며, list.pop(a)을 활용한다.

🔥 입력값 설정

input( )을 사용하게 되면 시간초과 에러가 뜨게 되므로,

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

과 같이 입력해 시간을 단축해 준다.


🦧코드

🔥 나의 코드

import sys

n = int(sys.stdin.readline())
stack = []

for _ in range(n):
    k = sys.stdin.readline().split()
    if k[0] == 'push':
        stack.append(k[1])
    elif k[0] == 'pop':
        if len(stack) > 0:
            print(stack[-1])
            del(stack[-1])
        else:
            print(-1)
    elif k[0] == 'size':
        print(len(stack))
    elif k[0] == 'empty':
        if len(stack) == 0:
            print(1)
        else:
            print(0)
    elif k[0] == 'top':
        if len(stack) > 0:
            print(stack[-1])
        else:
            print(-1)

profile
https://github.com/nikevapormax

0개의 댓글