Codingtest

프로그래머스 문제[야근 지수] Python 풀이

Runningturtle 2024. 8. 10. 17:16
import heapq

def solution(n, works):
    ans=0
    if sum(works)>=n:    
        for i in range(n):
            works.sort()
            works[-1]-=1
        for i in works:
            ans+=i**2
            
            
        return ans
    else:
        
        return 0

            
## 3 3 4 , 3 3 3 , 3 3 3 , 3 3 2 , 2 3 3 , 2 3 2 , 2 2 3 , 2 2 2
## work 값들을 n만큼 뺄수있다.  work 값들을 제곱했을때 가장 값이 적은 값이 나올수있도록 n을 빼라. 
## 그러려면 가장 works에서 큰수를 찾아서 순서대로 빼면 된다.

https://school.programmers.co.kr/learn/courses/30/lessons/12927

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

시간 초과가 나기 쉬운 파이썬 특성상 heapq,deque 같은 자료구조를 더 활용할줄 알아야겠다.