[python] Queue vs deque

장선규·2023년 4월 2일
0

때는 백준 2573번 문제인 "빙산"을 풀고있을 때였습니다.
(문제링크: https://www.acmicpc.net/problem/2573)

해당 문제는 결국 풀긴 했지만 수차례 시간초과를 받으며 정신이 아찔해졌다.

사실 다른 사람들의 풀이를 보면서 내가 짠 알고리즘과 같거나 더 비효율적이라는 생각을 했다. 그런데 그 사람은 통과를 했고 나는 왜인지 시간초과가 나니까 화가 슬슬 나기 시작했다.

그러다가
https://programming119.tistory.com/184
해당 블로그 글에서 답을 찾을 수 있었다.

핵심은, Queue 모듈은 멀티쓰레드 환경을 지원하기 때문에 deque보다 느리다.
(생각해보니, Queue 모듈 속 기능들을 멀티쓰레딩 할 때 사용했던 기억이 났다...)

사실 Queue나 deque나 맨 뒤에서 하나를 pop하는데 큰 시간 차이가 나지 않을 것이라 생각을 했다. 어차피 둘 다 O(1)의 복잡도를 가지기 때문이다. 그러나 python 공식 문서에서도 확인할 수 있듯, Queue모듈은 멀티쓰레드를 지원하기 때문에 deque 보다 그냥 자체적으로 느릴 수 밖에 없는 것 같다.

profile
코딩연습

1개의 댓글

comment-user-thumbnail
2023년 4월 9일

Queue 모듈 속 기능들을 멀티쓰레딩 할 때 사용했던 기억이 났다...

어느 기능을 구현할 때 Queue 모듈 속 기능들을 사용했는지 궁금합니다 👀

답글 달기