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의 맨뒤로 보냅니다.