[python] 백준 28278번

도덩이의 개발 일지·2024년 9월 24일

백준

목록 보기
96/131
post-thumbnail

안녕하세요 !

오늘은 백준 - 스택 2 문제를 가지고 왔습니다.


문제 설명


해결 방법

문제를 해결한 방법은 다음과 같습니다.

  1. 명령의 수를 입력받습니다.
  2. 명령을 입력받습니다.
  3. 1 X를 입력했을 때 스택에 넣어줍니다.
  4. 2를 입력했을 때 스택 제일 위 요소를 빼고 출력합니다.
  5. 3를 입력했을 때 스택의 요소 개수를 출력합니다.
  6. 4를 입력했을 때 스택이 비어있으면 1을, 아니면 0을 출력합니다.
  7. 5를 입력했을 때 스택 제일 위 요소를 출력한다.

  1. 명령의 수를 입력받습니다.
n = int(sys.stdin.readline())

  1. 명령을 입력받습니다.
for i in range(n):
    arr = list(map(int, sys.stdin.readline().strip().split()))

  1. 1 X를 입력했을 때 스택에 넣어줍니다.
if arr[0] == 1:
    stack.append(arr[1])

  1. 2를 입력했을 때 스택 제일 위 요소를 빼고 출력합니다.
elif arr[0] == 2:
    if len(stack) > 0:
        print(stack.pop())
    else:
        print(-1)

  1. 3를 입력했을 때 스택의 요소 개수를 출력합니다.
elif arr[0] == 3:
    print(len(stack))

  1. 4를 입력했을 때 스택이 비어있으면 1을, 아니면 0을 출력합니다.
elif arr[0] == 4:
    if len(stack) == 0:
        print(1)
    else:
        print(0)

  1. 5를 입력했을 때 스택 제일 위 요소를 출력한다.
elif arr[0] == 5:
    if len(stack) != 0:
        print(stack[-1])
    else:
        print(-1)

전체 코드

import sys

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

for i in range(n):
    arr = list(map(int, sys.stdin.readline().strip().split()))
    if arr[0] == 1:
        stack.append(arr[1])
    elif arr[0] == 2:
        if len(stack) > 0:
            print(stack.pop())
        else:
            print(-1)
    elif arr[0] == 3:
        print(len(stack))
    elif arr[0] == 4:
        if len(stack) == 0:
            print(1)
        else:
            print(0)
    elif arr[0] == 5:
        if len(stack) != 0:
            print(stack[-1])
        else:
            print(-1)
profile
말하는 감자에서 개발자로 ( ´͈ ᵕ `͈ )◞♡

0개의 댓글