알고리즘
[알고리즘] 야근 지수
keel_im
2021. 5. 2. 17:03
반응형
포인트
- 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))
반응형