[BOJ] 10845. 큐

Jimeaning·2023년 4월 4일
0

코딩테스트

목록 보기
51/143

Python3

문제

입출력

입출력 예시

주요 포인트

큐에 대한 기초를 다지는 문제였다.

sys.stdin.readline()을 사용하지 않고 input()을 사용하면 시간초과 에러가 뜬다.

  1. push일 때, 큐에 x를 insert한다.
    insert(a, b)는 a라는 위치에 b를 삽입한다는 뜻이다.
    => insert
    push 1, push 2 하면 ['2', '1']
    => append
    push 1, push 2 하면 ['1', '2']
  2. pop일 때, 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다.

    queue.pop()

  3. size일 때, 큐의 길이를 구한다.
  4. empty일 때, 큐의 길이가 0이면 1을 반환하고 그렇지 않으면 0을 반환한다.
  5. front일 때, 큐의 마지막 원소를 출력한다.
  6. back일 때, 큐의 첫 번째 원소를 출력한다.

최종 코드

import sys

n = int(sys.stdin.readline())
qu = []

for i in range(n):
    mth = sys.stdin.readline().split()
    
    if mth[0] == 'push':
        qu.insert(0, mth[1])
    elif mth[0] == 'pop':    
        if len(qu) == 0:
            print(-1)
        else:
            print(qu.pop())
    elif mth[0] == 'size':
        print(len(qu))
    elif mth[0] == 'empty':
        if len(qu) == 0:
            print(1)
        else: print(0)
    elif mth[0] == 'front':
        if len(qu) == 0:
            print(-1)
        else: print(qu[-1])
    elif mth[0] == 'back':
        if len(qu) == 0:
            print(-1)
        else: print(qu[0])

피드백

insert와 append해서 들어가는 리스트는 다르다.
front와 back에서 헷갈려서 처음에 반대로 적었다. queue는 FIFO이기 때문에 front는 -1 값을, back은 0 값을 출력한다.

profile
I mean

0개의 댓글