from collections import deque

def solution(priorities, location):
    priorities = list(zip(priorities, range(len(priorities))))
    q = deque(priorities)
    cnt = 0
    
    while q:
        m_idx = 0

        for i in range(len(q)):
            if q[m_idx][0]<q[i][0]: m_idx = i

        if q[m_idx][1]==location: return cnt + 1

        for j in range(m_idx):
            q.append(q.popleft())

        p = q.popleft()
        cnt += 1

    return cnt

반복문을 돌면서 앞에서부터 가장 큰 수의 인덱스를 찾고 그 인덱스 앞까지의 프로세스는 pop해서 뒤로 append, 해당 프로세스는 pop하고 cnt를 1씩 증가
주어진 location의 프로세스가 가장 큰 수라면 pop하는 과정을 생략, 바로 cnt에 1을 더하고 반환

0개의 댓글