본문 바로가기
백준 알고리즘

[백준 10828][파이썬] 파이썬 스택 사용법

by 웅대 2023. 1. 21.
728x90
반응형

https://www.acmicpc.net/problem/10828

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

파이썬에서는 리스트의 연산을 사용하여 스택을 구현할 수 있다.

 

먼저 스택은 "First In Last Out"으로 먼저 들어온 것이 나중에 나오는 것이다.

 

스택의 push 연산의 경우 리스트의 append 연산을 사용하면 된다. append 연산을 사용하면 리스트의 뒤에 추가된다.

 

스택의 pop 연산의 경우 리스트의 pop 연산을 사용하면 된다. 리스트의 가장 앞 값을 반환하고 리스트에서 삭제한다.

 

스택의 top 연산의 경우 리스트의 인덱스 -1에 해당하는 값을 가져오면 된다. 리스트 인덱스 -1의 위치는 리스트의 가장 뒤이다.

 

전체 코드

import sys
n=int(input())
stack=[]
for _ in range(n):
    temp=sys.stdin.readline().split()
    if len(temp)==2:
        stack.append(temp[1])
    elif temp[0]=="pop":
        if len(stack)==0:
            print(-1)
            continue
        print(stack.pop())
    elif temp[0]=="size":
        print(len(stack))
    elif temp[0]=="empty":
        print("1" if len(stack)==0 else "0")
    else:
        if len(stack)==0:
            print(-1)
            continue
        print(stack[-1])
728x90
반응형

댓글