Haribo ML, AI, MATH, Algorithm

야근 지수

2021-01-28
Haribo

import bisect
def solution(n, works):
    works.sort()
    for _ in range(n) :
        max_num = works.pop(-1)
        if max_num < 1 :
            return 0
        bisect.insort_left(works, max_num-1)
    return sum(x**2 for x in works)

제곱합의 최소화

남은 작업량들의 제곱합이 피로도인데 이 제곱합을 최소화 하려면 남은 작업량들의 분산을 줄이면 된다. 즉 작업량 중 가장 큰놈부터 1시간씩 작업 해나가면 된다.

import bisect
def solution(n, works):
    works.sort()
    for _ in range(n) :
        max_num = works.pop(-1) # 작업량 가장 많은 놈
        if max_num < 1 :
            return 0
        bisect.insort_left(works, max_num-1) # 작업량 가장 많은놈 -1 해서 insort
    return sum(x**2 for x in works)

Similar Posts

이전 포스트 불량 사용자

다음 포스트 스타 수열

Comments