알고리즘
[프로그래머스] Lv2 프로세스
Bruno-Jang
2025. 1. 3. 23:49
우선순위가 가장 높은 것의 인덱스를 먼저 찾는 것까지는 바로 했으나
그 후 우선순위가 같은 것들이 남았을 때 어떻게 접근할지를 풀지 못 했습니다.
1. 우선순위와 인덱싱 매칭 (큐처럼 활용)
2. 큐의 가장 앞에 있는 값 꺼내서 나머지 값들의 우선순위와 비교
3. 꺼낸 값의 우선순위가 가장 크면 answer += 1
4. 아니라면 꺼낸 값을 다시 큐에 넣고 동일한 작업 반복
def solution(priorities, location):
answer = 0
queue = [(i, v) for i, v in enumerate(priorities)]
while queue:
cur = queue.pop(0)
if any(cur[1] < q[1] for q in queue):
queue.append(cur)
else:
answer += 1
if cur[0] == location:
return answer
return answer