본문 바로가기
알고리즘

[알고리즘] 야근 지수

by keel_im 2021. 5. 2.
반응형

포인트

  • n 만큼 일을 처리할 수 있고 남은 일의 양으로 야근 지수가 나타난다. 이 야근 지수를 최소로 만들 수 있는 방법? 
  • 최소로 만들려면 각각의 원소 차이가 근소하도록 만들어주어야 한다. 
  • 데이터의 순서는 중요하지 않기 때문에 내림차순 정렬로 한다.

🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. 

python

def solution(n: int, works: list):
    pointer = 0
    works.sort(reverse=True)
    while n > 0:
        n -= 1
        if works[pointer] > 0:
            works[pointer] -= 1

        if pointer + 1 < len(works) and works[pointer] < works[pointer + 1]:
            # 다음이 크다면 하나를 줄이고 그렇지 않다면 다시 돌아온다.
            pointer += 1
            if pointer == len(works):
                pointer = 0
        else:
            pointer = 0
    return sum(map(lambda x: x ** 2, works))
반응형

댓글