def solution(priorities, location):
answer = 0
queue = [(i,value) for i,value in enumerate(priorities)]
while queue:
index, priority = queue.pop(0)
if queue and max([x[1] for x in queue]) > priority:
queue.append((index,priority))
continue
answer += 1
if index == location:
return answer
return answer
이번 문제는 프로세스와 프로세스의 우선순위로 이루어진 Queue가 있을 때, 큐에서 꺼낸 원소보다 우선순위가 더 높은 프로세스가 있다면 다시 큐에 삽입하고 없다면 그대로 프로세스를 실행하여 종료시키는 문제이다.
Queue 자료형과 리스트 컴프리헨션 및 enumerate를 사용하여 간단하게 풀이할 수 있었다 :)
'Data Structure 🛠️ > Queue' 카테고리의 다른 글
[소프티어 6270번] GBC (0) | 2024.06.19 |
---|---|
[프로그래머스 PCCP 모의고사 3번] 카페 확장 (0) | 2023.11.11 |
[프로그래머스 Lv.2] 다리를 지나는 트럭 (0) | 2023.09.21 |
[프로그래머스 Lv.2] 기능개발 (0) | 2023.09.21 |
[SWEA 5099번] 피자굽기 (0) | 2023.09.21 |