본문 바로가기

카테고리 없음

[프로그래머스 LV2] 프로세스 - 파이썬

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

실행코드

from collections import deque

def solution(priorities, location):
    queue = [(i, p) for i, p in enumerate(priorities)]
    answer = 0
    while True:
        cur = queue.pop(0)
        if any(cur[1] < q[1] for q in queue):
            queue.append(cur)
        else:
            answer += 1
            if cur[0] == location:
                return answer

 

풀이

enumerate함수로 index와 value를 나눠 원하는 index의 값을 추적하는데 사용하였습니다.

 

any함수는 true나 false를 return 하는 함수입니다.

내부를 보면 cur[1] < q[1] for q in queue

q라는 임시변수로 queue의 모든 변수를 돌고 cur[1]과 q[1]를 비교하였을 때 숫자가 높은(우선순위가 높은)

수가 있을 때 queue의 맨뒤로 보냅니다.