728x90
반응형
https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
code
import sys
input = sys.stdin.readline
n = int(input())
a = []
for _ in range(n):
do = input().split()
if do[0] == 'push':
a.append(do[1])
elif do[0] == 'pop':
if len(a) == 0:
print(-1)
else:
print(a.pop())
elif do[0] == 'size':
print(len(a))
elif do[0] == 'empty':
if len(a) == 0:
print(1)
else:
print(0)
elif do[0] == 'top':
if len(a) == 0:
print(-1)
else:
print(a[len(a)-1])
이번문제는 스택을 구현하면되는데,
파이썬에는 스택을 따로 제공하지 않는다.
그래서 이 문제를 풀려면 리스트를 이용해 스택을 흉내내서 풀면된다.
문자열을 입력받고 해당 명령어가 있으면 그에 해당하는 행동을 한다.
리스트의 append나 pop을 알고있다면 간단하게 해결이 된다.
append함수는 리스트 제일 끝에 값을 추가함으로 push연산을 할 수 있고
pop은 끝에 있는 함수를 제거하고 값을 저장함으로 pop그대로 사용할 수 있다.
728x90
반응형
'알고리즘 > 백준[baekjoon]' 카테고리의 다른 글
[baekjoon]백준 11866번 : 요세푸스 문제 0 (by python 파이썬) (0) | 2022.03.28 |
---|---|
[baekjoon] 백준 10866번 : 덱 (deque) (0) | 2022.03.27 |
[baekjoon] 백준 10816번 : 숫자카드2 (by python 파이썬) (0) | 2022.03.22 |
[baekjoon] 9012번 : 괄호 by python (0) | 2022.03.16 |
[baekjoon] 2609번 : 최대 공약수 최소 공약수 (0) | 2022.03.14 |