1) 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다.
2) 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다.
3) 그렇지 않으면 J를 인쇄합니다.
from collections import deque;
def solution(priorities, location):
p_queue = deque(priorities);
i_queue = deque(list(range(len(priorities))));
i_list = []
while p_queue:
p = p_queue.popleft()
if p_queue:
if p < max(list(p_queue)):
p_queue.append(p);
i = i_queue.popleft();
i_queue.append(i);
else:
i = i_queue.popleft();
i_list.append(i);
else:
i = i_queue.popleft();
i_list.append(i);
return i_list.index(location) +1;
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
for fruit in enumerate(['apple', 'berry', 'orange']):
print(fruit)
(0, 'apple')
(1, 'berry')
(2, 'orange')
for fruit in enumerate(['apple', 'berry', 'orange'], start=1):
print(fruit)
(1, 'apple')
(2, 'berry')
(3, 'orange')