본문 바로가기
DEVLOG/Algorithms

[BOJ 10828] 스택 - 파이썬 풀이

2019. 9. 9.
반응형

 

문제 보기

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

www.acmicpc.net

문제 해설

정수를 저장하는 스택을 구현하고 push, pop, size, empty, top 5가지 기능을 구현하는 문제입니다.

스택에 대한 설명은 아래 링크 클릭!

 

파이썬(Python)으로 스택과 큐 사용하는 법 / 예제 포함

스택(Stack) 스택은 말 그대로 데이터를 쌓아 올리는 자료구조입니다. 스택은 LIFO(Last-In-First-Out) 순서를 따릅니다. 가장 최근에 스택에 추가한 항목이 가장 먼저 제거될 항목이라는 것입니다. 배열과 달리..

deepwelloper.tistory.com

 

파이썬(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()을 사용하면 더 빨라집니다.

 

 

[BOJ] 파이썬(Python) 주의사항 및 Tips

float, double 등의 부동소수점 자료형은 나타내는 수의 범위가 넓지만, 그 범위 안에 있는 모든 수를 정확하게 나타낼 수 있는 게 절대 아닙니다. 범위도 넓은데 원하는 수를 다 표현할 수도 있고 int만큼이나..

deepwelloper.tistory.com

 

반응형

댓글