본문 바로가기

Dequeue2

[코딩테스트] 프로그래머스 - 프린터 (Lv.2) in Python 프린터 인쇄 순서 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 현재 대기목록에 있는 문서의 중요도가 순서대로 담긴 배열 priorities와 내가 인쇄를 요청한 문서가 현재 대기목록의 어떤 위치에 있는지를 알려주는 location이 매개변수, 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 return. programmers.co.kr/learn/courses/30/lessons/42587 풀이 - 배열의 앞에서 원소를 꺼내고, 그 원소가 뒤로 간다는 점이 원형 큐를 떠올리게 했다. 참고 - piaflu.tistory.c.. 2021. 2. 14.
[자료구조] 파이썬의 deque - 양방향 큐, 원형 큐 구현 list가 [1,2,3,4,5]로 주어질 때, 배열의 끝에서 원소 추출하는 list.pop() 후에는 [1 ,2 ,3, 4]로 재정렬이 필요 없지만 (O(1)), 배열의 시작에서 추출하는 list.pop(0) 후에는 [2, 3, 4, 5]로 원소를 한 칸씩 옮겨주는 작업이 필요해, 시간 복잡도는 O(n)이 된다. list의 앞과 뒤 모두에서 원소의 추가와 삭제가 일어난다면, 이런 이유로 양방향 큐, 혹은 원형 큐를 사용하는 것이 더 이익이다. 파이썬에는 이를 이미 구현한 라이브러리가 있다. collections 모듈 - deque (Doubley-Ended Queue) deque는 덱이라고 읽으면 된단다. from collections import deque # declare queue queue = d.. 2021. 2. 14.