10828 스택
업데이트:
1. 문제
문제는 링크에 들어가면 있다.
2. 정답 코드
문제의 내 정답 코드는 다음과 같다.
import sys
def push_func(array,n):
array.append(int(n))
return array
def pop_func(array):
if len(array) > 0 :
temp = array.pop()
return array, temp
else :
return [],-1
def size_func(array):
return len(array)
def empty_func(array):
if len(array) == 0 :
return 1
else :
return 0
def top_func(array):
if len(array) == 0 :
return -1
else :
return array[-1]
read = sys.stdin.readline
N = int(read())
# 각 입력을 받고 저장하기보단 N이 최대 10000이므로, 매 반복마다 함수 실행을하자.
results = []
array = []
for _ in range(N):
temp = list(read().split())
# print(temp,array)
if temp[0] == "push":
array = push_func(array,temp[1])
elif temp[0] == "pop":
array,val = pop_func(array)
if len(array) == 0 :
print(val)
else :
print(val)
elif temp[0] == "size":
print(size_func(array))
elif temp[0] == "empty":
print(empty_func(array))
elif temp[0] == "top":
if top_func(array) == -1 :
print(-1)
array = []
else :
print(top_func(array))
3. 생각 및 풀이
생각
이 문제는 자료구조의 가장 기초가 되는 스택을 사용하는 방법에 대해 묻는 문제이다.
문제 풀이
문제 풀이라고 할 것도 없이 list의 pop,append를 할줄 아는지, 조건문을 다룰지 아는지만 알면 손쉽게 풀 수 있는 문제이다.