Lv2 - 프린터

LeeKyoungChang·2022년 5월 4일
0

Algorithm

목록 보기
195/203
post-thumbnail

📚 Lv2 - 프린터

프린터

 

이해

  • 인덱스 중에서 번호가 가장 큰 것을 기준으로 시작된다.

 

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

 

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글