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의 변화에 따라 고정적이지 않은 부분이 고민이었다. 이는 (기존 인덱스, 값)의 튜플 형태로 정보를 남김으로써 해결할 수 있었다.
- '대상값보다 바로 다음으로 큰 값이 모두 처리되는 시점을 기준으로 순차처리하기'라는 원리도 생각해보았었다.