[BOJ] 10828. 스택

Jimeaning·2023년 4월 3일
0

코딩테스트

목록 보기
48/143

Python3

문제

입출력

입출력 예시

주요 포인트

stack이라는 빈 배열을 선언한다.

method를 split해서 n개 입력받는다.

만약 mth의 첫 번째 인덱스가 push 라면,
리스트에 mth의 두 번째 인덱스를 넣는다.

만약 mth의 첫 번째 인덱스가 pop 이라면,
1. 리스트 길이가 0일 때 -1을 출력한다.
2. 리스트 길이가 0이 아니면 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다.

만약 mth의 첫 번째 인덱스가 size 라면,
리스트의 길이를 출력한다.

만약 mth의 첫 번째 인덱스가 empty 라면,
1. 리스트 길이가 0일 때 1을 출력한다.
2. 리스트 길이가 0이 아니면 0을 출력한다.

만약 mth의 첫 번째 인덱스가 top 이라면,

최종 코드

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

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

피드백

차근히 풀면 어렵지 않은 문제였다. 메소드를 입력받을 때 sys.stdin.readline().split()를 사용하였다.

profile
I mean

0개의 댓글