반응형
포인트
- 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))
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 오픈 채팅방 (0) | 2021.05.02 |
---|---|
[알고리즘] 멀리 뛰기 (0) | 2021.05.02 |
[알고리즘] 음양 더하기 (0) | 2021.04.29 |
[알고리즘] 최단거리 알고리즘 - 플로이드 와샬 알고리즘 (0) | 2021.04.28 |
[알고리즘] rotate image (0) | 2021.04.25 |
댓글