파이썬 알고리즘 256번 | [프로그래머스 프린터 ] - 덱

Yunny.Log ·2022년 8월 25일
0

Algorithm

목록 보기
261/318
post-thumbnail

256. 프린터

1) 어떤 전략(알고리즘)으로 해결?

2) 코딩 설명

  • 주석

<내 풀이>


from collections import deque

def solution(priorities, location):
    answer = 0
    ppriorities = deque()

    for p in range(len(priorities)) :
        ppriorities.append((priorities[p], p))
        # 숫자 , 순서 순으로 담아줌 
        
    maxx = max(priorities)
    # 앞으로 최댓값을 담아줄 변수 

    while ppriorities : 
        now = ppriorities.popleft()
        # 맨 앞에 있는 프린트 데려와

        if now[0]<maxx : # (1) 걔보다 큰 애가 존재한다면 
            ppriorities.append((now[0], now[1]))
            # 얌전히 다시 대기줄 맨 뒤로

        else : # (2) 얘가 최대라면 
            priorities.remove(now[0]) # 기존 리스트에서 제거 
            if priorities : # 조건문 걸어줘야 런타임 에러 안남  
                maxx = max(priorities) # 최댓값 갱신 
            answer+=1 # 순서 갱신 
            if now[1] == location : # 지금 찾은 애가 내가 찾던 번째 애면 
                break # 더이상 볼 필요 X
            
    return answer

<반성 점>

  • MAX 빌트인 사용할 때 리스트가 존재하는지 여부부터 IF 로 꼭 체크해주자

0개의 댓글