codes/programmers

42587 프로세스

카제xd 2024. 12. 24. 00:59

https://school.programmers.co.kr/learn/courses/30/lessons/42587

 

from collections import deque

def solution(priorities, location):
    queue = deque(enumerate(priorities))
    num = 0
    
    while queue:
        cur = queue.popleft()
        if any(cur[1] < q[1] for q in queue):
            queue.append(cur)
        else:
            num += 1
            if cur[0] == location:
                return num

 

 

[개선할 점]

- 코드 힌트를 조금 참조해서 푼 결과이다.

- 처음에는 location 값이 queue의 변화에 따라 고정적이지 않은 부분이 고민이었다. 이는 (기존 인덱스, 값)의 튜플 형태로 정보를 남김으로써 해결할 수 있었다.

- '대상값보다 바로 다음으로 큰 값이 모두 처리되는 시점을 기준으로 순차처리하기'라는 원리도 생각해보았었다.