728x90
링크: https://school.programmers.co.kr/learn/courses/30/lessons/42587
✅ 순서가 첫번째부터임 리스트 0번으로 return하면 당연히 틀림
✅ 최대 힙임 (최소힙으로 습관적으로 쓰지 말것)
✅ 가장 우선 순위가 높은 프로세스를 찾을 때 max() 나 any()를 쓰는 거 보단 힙을 사용하는게 더 빠름
최신 풀이: 큐+힙 사용(더 빠름) | 이전 풀이: 큐+any사용 | |
시간 |
|
✅ 최신 풀이: 큐+힙 사용
from collections import deque
from heapq import heappush,heappop
def solution(priorities, location):
q = deque()
hq = []
for i,p in enumerate(priorities):
q.append((p,i))
heappush(hq,(-p,i))
answer = []
while q:
if q[0][0]!=-hq[0][0]:
while q[0][0]!=-hq[0][0]:
cur = q.popleft()
q.append(cur)
else:
cur = q.popleft()
heappop(hq)
answer.append(cur[1])
return answer.index(location)+1
✅ 이전 풀이: 큐+any사용
from collections import deque
def solution(priorities, location):
queue = deque()
answer = 0
for i,p in enumerate(priorities):
queue.append((i,p))
while True:
cur = queue.popleft()
if any(cur[1]<q[1] for q in queue):
queue.append(cur)
else:
answer+=1
if cur[0]==location:
break
return answer
728x90
'코딩테스트 > 자료구조(스택,큐,해시,힙)' 카테고리의 다른 글
[스택] (프로그래머스_176962) 과제 진행하기 (☆☆☆) (0) | 2024.10.01 |
---|---|
[큐] (프로그래머스_42583) 다리를 지나는 트럭 - 파이썬 (0) | 2024.09.05 |
[스택] (프로그래머스_42586) 기능개발 - 파이썬 (0) | 2024.09.05 |
[해시] (프로그래머스_42577) 전화번호 목록 - 파이썬 (0) | 2024.09.05 |
[해시] 해시 이론 (1) | 2024.09.05 |