It's easy, if you try

[프로그래머스] 프린터 (Python) 본문

알고리즘/파이썬(Python)

[프로그래머스] 프린터 (Python)

s5he2 2021. 2. 12. 00:40
반응형

문제

 

코딩테스트 연습 - 프린터

일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린

programmers.co.kr

풀이

def solution(priorities, location):
    answer = 0
    pi_list = [(p, i) for (i, p) in enumerate(priorities)]
               
    while pi_list:
        prior = pi_list.pop(0)
        # 밑에 코드 추가하니까 85점 -> 100점
        if pi_list:
            p_list = [priority for priority, idx in pi_list]
        
        if p_list:
            if prior[0] >= max(p_list):
                if prior[1] == location:
                    return answer + 1
                else:
                    answer += 1
            else:
                pi_list.append(prior)

변수설명

  • pi_list : (우선순위, index) 로 저장된 튜플
  • prior : 첫번째 대기 문서
  • p_list : 남아있는 문서들의 우선순위 배열

나의 첫번째 알고리즘 문제이다!

많은 정답을 참고하고 이해하면서 풀어보았다

tuple enumerate에 대해 처음 알게 된 문제이다.

enmerate는 리스트를 순서와 리스트의 값을 한쌍으로 반환하는 함수이다.

 

최초 발행 날짜: 2020-02-15

반응형
Comments