sm 기술 블로그

151. 10828(스택) - 파이썬 본문

문제/백준_파이썬

151. 10828(스택) - 파이썬

sm_hope 2022. 7. 20. 20:45
import sys
input = sys.stdin.readline

N = int(input())
stack = []
result = ""

for _ in range(N):
  S = input()
  tmp = S.split()
  num = 0
  
  if len(tmp) == 1:
    S = tmp[0]
  elif len(tmp) == 2:
    S = tmp[0]
    num = int(tmp[1])
    
  if S == "push":
    stack.append(num)
  
  elif S == "size":
    result += str(len(stack)) + "\n"
  
  elif S == "empty":
    if len(stack) == 0:
      result += str("1") + "\n"
    else:
      result += str("0") + "\n"
      
  elif S == "top":
    if len(stack) == 0:
      result += str("-1") + "\n"
    else:
      result += str(stack[len(stack)-1]) + "\n"
  
  elif S == "pop":
    if len(stack) == 0:
      result += str("-1") + "\n"
    else:
      result += str(stack.pop()) + "\n"
  

print(result)

문제요약

  • push X: 정수 X를 스택에 넣는 연산이다.
  • pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 스택에 들어있는 정수의 개수를 출력한다.
  • empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
  • top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.

설명

먼저 값이 push 1 일 수도 있으니 만약 쪼갰을 때 길이가 2라면 push 와 1을 분리해준다.

  S = input()
  tmp = S.split()
  num = 0
  
  if len(tmp) == 1:
    S = tmp[0]
  elif len(tmp) == 2:
    S = tmp[0]
    num = int(tmp[1])

 

  • push X: 정수 X를 스택에 넣는 연산이다.
  if S == "push":
    stack.append(num)
  • pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  elif S == "pop":
    if len(stack) == 0:
      result += str("-1") + "\n"
    else:
      result += str(stack.pop()) + "\n"
  • size: 스택에 들어있는 정수의 개수를 출력한다.
  elif S == "size":
    result += str(len(stack)) + "\n"
  • empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
  elif S == "empty":
    if len(stack) == 0:
      result += str("1") + "\n"
    else:
      result += str("0") + "\n"
  • top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  elif S == "top":
    if len(stack) == 0:
      result += str("-1") + "\n"
    else:
      result += str(stack[len(stack)-1]) + "\n"

'문제 > 백준_파이썬' 카테고리의 다른 글

152. 10773(제로) - 자바  (0) 2022.07.20
152. 10773(제로) - 파이썬  (0) 2022.07.20
150. 13305(주유소) - 파이썬  (0) 2022.07.19
149. 1541(잃어버린 괄호) - 파이썬  (0) 2022.07.18
148. 11399(ATM) - 파이썬  (0) 2022.07.18
Comments