title: "[프로그래머스] 야근 지수 Python 파이썬 해설 (Level 3) - 이도훈"
cleanUrl: "programmers/12927"
description: "프로그래머스 Level 3 문제 [야근 지수]의 풀이를 정리합니다."
from collections import Counter
def solution(n, works):
if sum(works) <= n:
return 0
cnt = Counter(works)
while n > 0:
# 가장 오래 걸리는 일의 시간을 찾아냅니다.
m = max(cnt.keys())
c = cnt[m]
# 만약 가장 오래 걸리는 일의 개수가 n보다 작다면 그 일을 1시간씩 합니다.
if c < n:
cnt -= Counter({m: c})
cnt += Counter({m-1: c})
n -= c
# 만약 가장 오래 걸리는 일의 개수가 n보다 많다면 그 중 n개의 일만 처리하고 값을 리턴합니다.
else:
cnt -= Counter({m: n})
cnt += Counter({m-1: n})
return sum(k**2 * v for k, v in cnt.items())
return sum(k**2 * v for k, v in cnt.items())
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges