본문 바로가기
DEVLOG/Algorithms

[BOJ 10845] 큐 - 파이썬 풀이

2019. 9. 9.
반응형

문제 보기

 

10845번: 큐

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

www.acmicpc.net

 

문제 해설

정수를 저장하는 큐를 구현하고 push, pop, size, empty, front, back 6가지 기능을 구현하는 문제입니다.

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

 

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

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

deepwelloper.tistory.com

파이썬(Python3) 코드

import sys
from collections import deque

queue = deque([])
for _ in range(int(sys.stdin.readline().strip())):
    command = sys.stdin.readline().strip()
    if command[0]=='s': # size
        print(len(queue))
    elif command[0]=='e': # empty
        if queue:
            print(0)
            continue
        print(1)
    elif command[0]=='f': # front
        if queue:
            print(queue[0])
            continue
        print(-1)
    elif command[0]=='b': # back
        if queue:
            print(queue[-1])
            continue
        print(-1)
    elif command[1]=='o': # pop
        if queue:
            print(queue.popleft())
            continue
        print(-1)
    else:
        queue.append(command[5:])

직접 큐를 구현해보는 연습을 하는 것도 좋지만, 알고리즘 문제를 풀 때는 deque를 사용하는 것이 효율적입니다.

또한 사용자로부터 입력을 받을 때, input()보다는 sys.stdin.readline().strip()을 사용하면 더 빨라집니다.

 

 

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

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

deepwelloper.tistory.com

 

반응형

댓글