코딩테스트

[백준] 10845 | 큐 [파이썬/python]

사용할수없는닉네임이왜이렇게많지ㅠㅠ 2025. 4. 1. 23:50
728x90

문제

link: https://www.acmicpc.net/problem/10845

큐를 구현하는 문제이다.

 

접근

입력받은 명령에 맞추어 큐로서 동작하도록 코드를 구현했다. FIFO에 따라 동작한다.

push되는 원소는 리스트 q의 끝에 저장한다. front 인덱스 값과 rear 인덱스 값을 변수에 저장해 pop 시 별다른 원소 제거 없이 변수 값을 조정하여 처리하도록 했다.

 

코드

import sys
input = sys.stdin.readline

q = []
f = -1
r = -1

for _ in range(int(input())):
    tmp = input().split()
    if tmp[0] == 'push': q.append(tmp[1]); r += 1
    elif tmp[0] == 'pop':
        if f != r:
            f += 1
            print(q[f])
        else:
            print(-1)
    elif tmp[0] == 'size': print(r - f)
    elif tmp[0] == 'empty': print(1 if f == r else 0)
    elif tmp[0] == 'front': print(q[f + 1] if f != r else -1)
    elif tmp[0] == 'back': print(q[r] if f != r else -1)
728x90