프로그래머스 스택/큐 Level 2. 프린터 문제 파이썬 풀이
문제링크 https://programmers.co.kr/learn/courses/30/lessons/42587#
list의 pop을 써도 똑같으니 deque말고 list를 사용할걸 그랬다.
from collections import deque
def solution(priorities, location):
array = []
# 인덱스, 중요도 순서로 2차원 리스트 생성
for i in range(len(priorities)):
array.append([i, priorities[i]])
# deque 형식으로 변환
array = deque(array)
priorities = deque(priorities)
# 출력 순서
time = 1
while 1:
# 가장 큰 중요도 값 저장
max_pr = max(priorities)
# 요청한 문서의 index와 중요도가 같다면 리턴
if array[0][1] == max_pr and array[0][0] == location:
return time
# 중요도가 가장 크나 index가 다르다면 출력
elif array[0][1] == max_pr and array[0][0] != location:
array.popleft()
priorities.popleft()
time += 1
# 중요도가 더 큰 문서가 있다면 오른쪽에 추가
else:
a = array.popleft()
b = priorities.popleft()
array.append(a)
priorities.append(b)
return time