[Python] BOJ 18258: 큐2
큐(Queue)란?
그림 출처 : https://galid1.tistory.com/483
큐는 선입선출(First-In First-Out) 구조다. 큐에 데이터를 추가하는 작업을 인큐(enqueue), 데이터를 꺼내는 작업을 디큐(dequeue)라고 한다. 그리고 데이터를 꺼내는 쪽은 프런트(front), 데이터를 넣는 쪽을 리어(rear)라고 한다.
문제
풀이
import sys
N = int(sys.stdin.readline())
queue = []
cnt = 0 # 큐의 맨 앞을 가리키는 인덱스 값을 가리키는 변수
for i in range(N):
order = list(sys.stdin.readline().split())
if order[0] == 'push':
queue.append(int(order[1]))
elif order[0] == 'pop':
if len(queue) - cnt == 0: # 큐의 길이와 카운터를 빼서 0이라면 큐는 빈 상태
print(-1)
else:
print(queue[cnt])
cnt += 1 # pop 할때마다 cnt에 1을 누적
elif order[0] == 'size':
print(len(queue)-cnt)
elif order[0] == 'empty':
if len(queue)-cnt == 0: # 큐가 비어있으면 1을 출력
print(1)
else:
print(0)
elif order[0] == 'front':
if len(queue)-cnt == 0: # 큐가 비어있다면 -1을 출력
print(-1)
else:
print(queue[cnt]) # 큐의 가장 앞에 있는 원소 출력
elif order[0] == 'back':
if len(queue)-cnt == 0: # 큐가 비어있다면 -1을 출력
print(-1)
else:
print(queue[-1]) # 큐의 가장 뒤에 있는 원소 출력
Author And Source
이 문제에 관하여([Python] BOJ 18258: 큐2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@binsu/Python-BOJ-18258-큐2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)