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

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

'codes > programmers' 카테고리의 다른 글

42578 의상  (0) 2024.12.27
42584 주식가격  (1) 2024.12.27
42586 기능개발  (2) 2024.12.14
86491 최소직사각형  (1) 2024.12.13
12906 같은 숫자는 싫어  (0) 2024.12.12