- 인덱스 중에서 번호가 가장 큰 것을 기준으로 시작된다.
enumerate
를 사용하고, queue를 이용하면 된다. (FIFO)
✔️ enumerate란?
- 인덱스 번호와 컬렉션의 원소를 tuple형태로 반환
t = [1, 5, 7, 33, 39, 52]
for p in enumerate(t):
print(p)
(0, 1)
(1, 5)
(2, 7)
(3, 33)
(4, 39)
(5, 52)
from collections import deque
def solution(priorities, location):
answer = 0
q = deque([(v, i) for i, v in enumerate(priorities)])
# index와 index 위치 값을 q에 저장한다.
while len(q):
# queue에 삽입된 데이터를 꺼낸다.
cur_item = q.popleft()
# 현재 남은 수 중에서 가장 큰 값보다 작다면, queue에 삽입
if q and max(q)[0] > cur_item[0]:
q.append(cur_item)
else:
# 아니라면, 가장 크니, 횟수 + 1 한다.
answer += 1
if cur_item[1] == location:
break
return answer