https://school.programmers.co.kr/learn/courses/30/lessons/42587
순서
1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다.
2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다.
3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다.
3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다.
현재 실행 대기 큐(Queue)에 있는 프로세스의 중요도가 순서대로 담긴 배열 priorities와 몇 번째로 실행되는지 알고싶은 프로세스의 위치를 알려주는 location이 매개변수로 주어질 때해당 프로세스가 몇 번째로 실행되는지 return 하도록 solution 함수를 작성해주세요.
location==index일 경우 index의 실행 순서를 반환해야해서 [우선순위, index]형식의 배열을 생성합니다.def solution(priorities, location):
count = 0
big_p = sorted(priorities, key=lambda x: -x)
arr = [(v,i) for i,v in enumerate(priorities)]
idx = 0
while True:
p, i = arr.pop(0)
# 우선 순위와 같을 떼
if p >= big_p[idx]:
count += 1
idx += 1
if i == location:
return count
else : # 작을 때
arr.append((p,i))