반응형
URL : https://www.acmicpc.net/problem/10828
기본적인 스택을 구현하는 문제이다. 조금 이상하게 풀어보고싶다는 이상한 생각이 들어 이상하게 풀어봤다.
import re
import sys
class Stack(object):
def __init__(self) -> None:
self.stack = []
def push(self,x) -> None:
self.stack.append(x)
def pop(self) -> int:
#스택이 비은 경우에는 -1 출력
if self.empty():
return -1
return self.stack.pop()
def size(self) -> int:
return len(self.stack)
def empty(self) -> bool:
#스택이 비어있으면 1을
if not self.stack:
return 1
#비어있지 않으면 0을 출력
else:
return 0
def top(self) -> int:
if self.empty():
return -1
return self.stack[len(self.stack) - 1]
if __name__ == "__main__":
stk = Stack()
commands = {
"push" : stk.push,
"pop" : stk.pop,
"size" : stk.size,
"empty" : stk.empty,
"top" : stk.top
}
result = []
for _ in range(int(sys.stdin.readline())):
val = sys.stdin.readline().split()
if len(val) == 1:
execute = commands[val[0]]()
if execute != None:
result.append(execute)
else:
command, value = val
execute = commands[command](value)
if execute != None:
result.append(execute)
print(*result,sep = "\n")
반응형
'CS 지식 > Algorithm-Problem Solving 정리' 카테고리의 다른 글
[프로그래머스] 주식가격 (0) | 2022.01.18 |
---|---|
[백준] 9012 번 괄호 (0) | 2022.01.18 |
[프로그래머스] 가장 큰 수 (0) | 2022.01.11 |
[프로그래머스] K번째 수 (0) | 2022.01.11 |
[백준] 2750 수 정렬하기 : 기본적인 정렬들을 구현해 풀어보기 (0) | 2022.01.11 |