https://programmers.co.kr/learn/courses/30/lessons/42587
> 큐 활용
from collections import deque
def solution(priorities, location):
loc=[x for x in range(len(priorities))]
lst= deque(list(zip(priorities, loc)))
answer= 0
while True:
# 리스트의 튜플에서 첫번째 요소(priorities)의 max값 도출
m= max(lst, key= lambda x: x[0])[0]
# 리스트의 가장 첫번째 요소들을 꺼내서
p,l= lst.popleft()
# 꺼낸 요소 중 l이 답인 location과 같고 p가 max값과 같으면 반복문 탈출
if l == location and p == m:
answer += 1
break
# 꺼낸 요소 중 p가 max값보다 작으면 다시 해당 값들을 리스트의 끝에 추가
if p < m:
lst.append((p,l))
# 꺼낸 요소 중 p가 max값보다 (크거나) 같으면 answer에 +1
else:
answer += 1
return answer
'python > 알고리즘 문제풀이' 카테고리의 다른 글
최단경로 알고리즘(2)/ 힙을 사용한 다익스트라 알고리즘 (0) | 2021.07.09 |
---|---|
최단경로 알고리즘(1)/ 다익스트라 최단경로 (1) | 2021.07.07 |
다이나믹프로그래밍(1) (2) | 2021.07.01 |
[프로그래머스 | 파이썬3] 이진탐색 (2) / 입국심사 (0) | 2021.07.01 |
이진탐색 (1) (0) | 2021.06.30 |