프로그래머스 코딩테스트 고득점 Kit_스택/큐_프린터
문제 보러 가기 👈 클릭!
💡 풀이
✔ 풀이 방법
큐 자료구조에 (인덱스, 문서의중요도)를 입력받은 문서의 중요도 배열 순서대로 넣는다.
가장 큰 중요도를 구한다.
맨 앞 문서의 중요도가 가장 큰 중요도보다 작을경우, pop하고 맨 뒤에 push 한다.
가장 큰 중요도보다 같을경우 pop하고, 내가 인쇄를 요청한 문서인지 인덱스를 통해 확인한다.
내가 인쇄를 요청한 문서가 맞다면 인쇄 순서를 return하고 종료한다.
구현 코드👇
#큐 자료구조 사용 (FIFO)
#문서의 중요도 배열 priorities / 내 문서 위치 location
#내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 return
from collections import deque
def solution(priorities, location):
cnt = 0
q = deque(list(enumerate(priorities)))
while q:
max_p = max([tp[1] for tp in q])
if q[0][1] < max_p:
q.append(q.popleft())
else:
document = q.popleft()
cnt += 1
if document[0] == location:
return cnt
📝 any() 를 사용하여 맨 앞에 있는 문서보다 중요도가 높은 문서가 있는지 확인하는 방법도 있음
Author And Source
이 문제에 관하여(프로그래머스 코딩테스트 고득점 Kit_스택/큐_프린터), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@himinhee/프로그래머스-코딩테스트-고득점-Kit스택큐프린터저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)