티스토리 뷰

알고리즘/프로그래머스

[Programmers] [레벨3] 야근지수

글을 쓰는 개발자 2021. 10. 29. 06:29
반응형

참고 : https://programmers.co.kr/learn/courses/30/lessions/12927 

 

이 문제를 풀고나서 다른 사람들과 풀이방식이 조금 다르기에 이렇게 올려본다.

처음에 이 문제를 보았을 때 최댓값을 계속 뽑아내서 -1을 해주면 되겠구나라고 생각을 해서 바로 최대 힙을 생각했다.

파이썬에서는 최대힙을 구현하는 방법은 다들 아시겠지만 원래 숫자에 -1을 곱하면 그렇게 구현할 수 있다.

 

그래서 다음과 같이 구현하였다.

 

import heapq
from functools import reduce
def solution(n, works):
    if n>=sum(works):
        return 0
    heap = []
    for v in works:
        heapq.heappush(heap, -v)
    while n:
        x = heapq.heappop(heap)
        x +=1
        heapq.heappush(heap,x)
        n-=1
    heap = map(lambda x: x**2, heap)
    answer = reduce(lambda x,y : x + y, heap)
    return answer
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함