[Algorithm] 백준 10845 - 큐 in Python(파이썬)

하이초·2022년 7월 12일
0

Algorithm

목록 보기
16/94
post-thumbnail

💡 백준 10845:

큐 기본 구조 활용

🌱 코드 in Python

알고리즘: Queue

import sys

q = []
n = int(sys.stdin.readline())
for i in range(n):
	cmd = sys.stdin.readline().split()
	if cmd[0] == 'push':
		q.append(int(cmd[1])) # 앞부터 채움
	elif cmd[0] == 'pop':
		if len(q) == 0:
			print(-1)
		else:	
			print(q.pop(0)) # 맨 앞부터 뺄 수 있도록 인덱스값 부여
	elif cmd[0] == 'size':
		print(len(q))
	elif cmd[0] == 'empty':
		if len(q) == 0:
			print(1)
		else:
			print(0)
	elif cmd[0] == 'front':
		if len(q) == 0:
			print(-1)
		else:
			print(q[0])
	elif cmd[0] == 'back':
		if len(q) == 0:
			print(-1)
		else:
			print(q[-1])

이번 문제는 큐 자료구조를 다루는 기본 문제였다

큐 자료구조에 관한 자세한 내용과 구현(in c)은 아직 작성을 하지 못하였다..
빨리 자료구조도 복습해야지 😂

큐의 특성인 FIFO구조를 알고 있다면 쉽게 풀 수 있는 문제였다!

다만 파이썬 자체에 queue모듈이 구현되어 있어서 queue.get(), queue.put() 등을 활용할 수 있는데 peek와 같은 기능은 구현되어있지 않다
그래서 처음에는 queue 모듈을 활용하다가 인덱스 접근이 어려워서 그냥 리스트를 활용하기로 했다
리스트 자체에도 구현된 기능이 많아서 딱히 queue 모듈을 사용하지 않아도 될 것 같다..


🧠 기억하자

  1. 파이썬에 list를 잘 다루면 자료구조형 알고리즘 문제를 풀기가 아주아주 수월해 질 것 같다

백준 10845 바로가기

profile
개발국대가 되는 그 날까지. 지금은 개발 응애.

0개의 댓글