1주차 · 파트 02 Lv2. 배상 비용 최소화

BERT·2023년 3월 17일
0

KDT_CodingTest

목록 보기
2/3

Lv2. 배상 비용 최소화

  • 일할 수 있는 시간 N
  • 배열 works의 원소들 중 하나를 골라 -1을 N회 시행
  • result = min(최종 works의 원소 제곱의 합)
Nworksresult
3[4,3,3]12
3[3,3,3]17

계획 1

제곱 합을 최소화하려면 가장 큰 원소를 -1 하자

def solution(no, works):
    for _ in range(no):
        works=sorted(works)
        works[-1]-=1
    return sum([x**2 for x in works])

이유 모를 실패

계획 2

N이 충분해서 일을 다 끝내버리는 예외사항을 생각 못했다니

def solution(no, works):
    if no > sum(works):
        return 0
    for _ in range(no):
        works=sorted(works)
        works[-1]-=1
    return sum([x**2 for x in works])

0개의 댓글