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
'코딩테스트' 카테고리의 다른 글
[백준] 1966 | 프린터 큐 [파이썬/python] (0) | 2025.04.02 |
---|---|
[백준] 11723 | 집합 [파이썬/python] (0) | 2025.04.02 |
[백준] 1654 | 랜선 자르기 [파이썬/python] (0) | 2025.04.01 |
[백준] 18110 | solved.ac [파이썬/python] (0) | 2025.03.31 |
[백준] 10828 | 스택 [파이썬/python] (0) | 2025.03.31 |