프로그래머스/Level 2
스택/큐 - 프린터
bright_code
2020. 10. 13. 15:26
728x90
반응형
from collections import deque
def solution(priorities, location):
queue = deque()
for i in range( len(priorities) ):
queue.append( [ priorities[i], i ] )
answer = []
while queue:
n = queue.popleft()
for q in queue:
if n[0] < q[0] :
queue.append(n)
n = []
break
if n :
answer.append( n[1] )
return answer.index(location) +1
location은 index와 동일하다.
step 1 ) queue 자료 구조를 사용하기 위해서 deque 정의
step 2 ) 맨 처음 대기목록에서의 순서를 사용해서 return 값에 적용할 것이므로 우선순위와 location 을 리스트로 묶어 deque에 저장
step 3 ) 문제에 주어진 대로 구현, 나보다 우선순위가 높은 값이 뒤에 있으면 빼서 큐 맨 뒤로 보내고
없으면 answer 배열에 넣음
step 4 ) 처음에 입력받은 location 이 answer 의 어느 위치에 있는지 출력한다. 단, 출력 순위는 1 부터 시작하므로 +1 해준다.
728x90
반응형