개념:스택
[문제]
[문제해결방법]
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()) #입력값에 맞는 함수를 불러 값을 출력한다
[결과]
'알고리즘' 카테고리의 다른 글
[알고리즘] 괄호 (백준 9012/파이썬) (2) | 2021.03.16 |
---|---|
[알고리즘] 제로(백준 10773/파이썬) (0) | 2021.03.16 |
[알고리즘]나무 자르기(백준 2905/파이썬) (0) | 2021.03.14 |
[알고리즘] 하노이 탑 이동순서(백준 11729/파이썬) (0) | 2021.03.14 |
[알고리즘] 피보나치 함수(백준 1003/파이썬) (0) | 2021.03.14 |