본문 바로가기

알고리즘

[알고리즘]스택(백준 10828/파이썬)

개념:스택

 

[문제]

 

 

[문제해결방법]

1. 각 명령을 함수로 만든다

2. 입력값에 따라 각 함수를 불러와서 프린트하게 만든다

 

[코드리뷰]

import sys

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

def push(x):
    stack.append(x)
#push X: 정수 X를 스택에 넣는 연산이다.
def pop():
    if not stack:
        return -1
    else:
        return stack.pop()
#pop: 스택에서 가장 위에 있는 정수를 빼고, 
그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
def size():
    return len(stack)
#size: 스택에 들어있는 정수의 개수를 출력한다.
def empty():
    if not stack:
        return 1
    else:
        return 0
#empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
def top():
    if not stack:
        return -1
    else:
        return stack[-1]
#top: 스택의 가장 위에 있는 정수를 출력한다. 
만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
for i in range(n):
#for문으로 길이만큼 돌린다
    a=sys.stdin.readline().rstrip().split()
    order = a[0]

    if order=="push":
        push(a[1])
    elif order=="pop":
        print(pop())
    elif order=="size":
        print(size())
    elif order=="empty":
        print(empty())
    elif order=="top":
        print(top())
        #입력값에 맞는 함수를 불러 값을 출력한다

[결과]