파이썬 queue 모듈 사용하기. 백준 2164 파이썬 문제풀이.

2023. 8. 7. 19:17코딩테스트

반응형
import queue

cards = int(input())

deck = queue.Queue()

for i in range(1, cards+1):
    deck.put(i)

print(list(deck.queue))

지금 백준 문제를 하고 있는데 파이썬 queue 모듈을 쓰고싶어서 공부중이다. 우선 queue를 import 하고 초기화가 queue.Queue()를 한다. 희한하다. 아마 Queue() 말고 다른 것도 있나보다 아마 deque겠지? 데크라고 한다. 데큐라고 하지말자.

 

list(deck.queue)를 했더니 리스트 형식으로 안에 들어있는 요소들이 모두 나왔다.

 

https://docs.python.org/3/library/queue.html

 

queue — A synchronized queue class

Source code: Lib/queue.py The queue module implements multi-producer, multi-consumer queues. It is especially useful in threaded programming when information must be exchanged safely between multip...

docs.python.org

https://wikidocs.net/104977

 

008 앞뒤에서 자료를 넣고 빼려면? ― collections.deque

deque는 앞과 뒤에서 데이터를 처리할 수 있는 양방향 자료형으로, 스택(stack)처럼 써도 되고 큐(queue)처럼 써도 된다. collections.deque 모듈은 de…

wikidocs.net

 

import queue
import sys

cards = int(sys.stdin.readline())

deck = queue.Queue()

for i in range(1, cards+1):
    deck.put(i)


print(list(deck.queue))

print(deck.get())

print(list(deck.queue))

deck.put(deck.get())

print(list(deck.queue))

print(deck.get())

print(list(deck.queue))

deck.put(deck.get())

본격 공부. 여기서는 get()이라는 메서드를 쓰면 앞에거가 빠져나온다.

그리고 put을 쓰면 input이 됨. 그래서 이것을 계속 반복하는 것을 만든다.

import queue
import sys

cards = int(sys.stdin.readline())

deck = queue.Queue()

for i in range(1, cards+1):
    deck.put(i)


while deck.qsize() > 1:
    deck.get()
    deck.put(deck.get())

print(deck.get())

내가 푼 문제. queue에는 len을 쓰지 못하고 qsize()라는 것을 써야한다.

다른 사람들 것 보니까 deqeue로 많이 했던데.. 이거도 큐의 종류니까 그렇게 풀어도 되는거겠지? 위 코드는 시간이 다소 오래 걸렸다.

728x90