반응형
문제 보기
문제 해설
정수를 저장하는 스택을 구현하고 push, pop, size, empty, top 5가지 기능을 구현하는 문제입니다.
스택에 대한 설명은 아래 링크 클릭!
파이썬(Python3) 코드
import sys
import collections
stack = collections.deque()
n = int(sys.stdin.readline().strip())
for _ in range(n):
command = sys.stdin.readline().strip()
if command[:2] == "pu":
num = int(command.split(' ')[1])
stack.append(num)
if command[:2] == "po":
if not stack:
print(-1)
continue
print(stack.pop())
if command[0] == 's':
print(len(stack))
if command[0] == 'e':
if stack:
print(0)
continue
print(1)
if command[0] == 't':
if not stack:
print(-1)
continue
print(stack[-1])
직접 스택을 구현해보는 연습을 하는 것도 좋지만, 알고리즘 문제를 풀 때는 deque를 사용하는 것이 효율적입니다.
또한 사용자로부터 입력을 받을 때, input()보다는 sys.stdin.readline().strip()을 사용하면 더 빨라집니다.
반응형
'DEVLOG > Algorithms' 카테고리의 다른 글
파이썬(Python)으로 스택과 큐 사용하는 법 / 예제 포함 (0) | 2019.09.09 |
---|---|
[BOJ 10845] 큐 - 파이썬 풀이 (0) | 2019.09.09 |
[2020 KAKAO 코딩테스트 1차] 4번 - 와일드카드 (4) | 2019.09.08 |
[2020 KAKAO 코딩테스트 1차] 1번 - 문자열 압축 (4) | 2019.09.08 |
[2020 카카오 코딩테스트] 문제 및 후기/예상 커트라인 (1) | 2019.09.07 |
댓글