[알고리즘 문제 풀이][파이썬] 백준 10845번: 큐

염지현·2022년 3월 16일
0

BOJ

목록 보기
2/22

백준 10845 문제 링크: https://www.acmicpc.net/problem/10845

📑 문제 설명

자료구조 큐를 구현하는 문제!
큐의 개념만 알고 있다면 코드는 간결하지만!
이 문제를 통해 얻을 수 있었던 것은... 파이썬 시간초과 해결하는 법이랄까..

입력: 명령어를 입력할 횟수를 입력한 후, push, pop, size, empty, front, back 명령어 입력
출력: 입력한 명령어에 따라 출력

💡 문제 해결 방법

list()를 사용하여 큐를 구현하였다.
push -> append(num)
pop -> pop(0) # 큐는 선입선출
size -> len(queue)
empty -> len을 사용하여 조건문 사용
front -> queue[0]
back -> queue[-1]

💻 코드

import sys

if __name__ == '__main__':
    N = int(input())
    queue = list()
    for i in range(N):
        code = sys.stdin.readline()
        if (code[:4] == 'push'):
            num = int(code[5:])
            queue.append(num)
        elif (code[:3] == "pop"):
            if (len(queue) == 0):
                print(-1)
            else:
                a = queue[0]
                queue.pop(0)
                print(a)
        elif (code[:4] == "size"):
            print(len(queue))
        elif (code[:5] == "empty"):
            if (len(queue) == 0):
                print(1)
            else:
                print(0)
        elif (code[:5] == "front"):
            if (len(queue) == 0):
                print(-1)
            else:
                print(queue[0])
        elif (code[:4] == "back"):
            if (len(queue) == 0):
                print(-1)
            else:
                print(queue[-1])

💟 추가적으로 알게 된 점

  • 시간초과의 매서움..
    • input()보다 sys.stdin.readline() 함수가 2배는 시간이 절약된다.
    • python3 말고 PyPy3가 시간이 절약된다.

0개의 댓글