https://school.programmers.co.kr/learn/courses/30/lessons/12927
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 효율성 체크 실패 (시간 초과)
def solution(n, works):
answer = 0
works.sort()
for _ in range(n):
works.append(works.pop()-1)
works.sort()
for i in works:
if i > 0:
answer += i*i
return answer
- 정답 코드
import heapq
def solution(n, works):
answer = 0
# heapq가 최소힙이기 때문에
# 작업량이 가장 많은 작업을 pop하기 위해 최대힙으로 바꿈
works = [-work for work in works]
heapq.heapify(works)
# 작업량이 많은 작업을 1씩 빼기
for _ in range(n):
num = heapq.heappop(works)
heapq.heappush(works, num+1)
for i in works:
if i < 0:
answer += i*i
return answer'코딩테스트 > 코딩테스트 문제풀이' 카테고리의 다른 글
| [Python] 백준 <1987-알파벳> (0) | 2025.08.12 |
|---|---|
| [Python] 프로그래머스 <무인도 여행> (0) | 2025.07.25 |
| [Python] 프로그래머스 <시소 짝꿍> (0) | 2025.07.25 |
| [Python] 백준 <1261-알고스팟> (0) | 2025.07.23 |
| [Python] 백준 <16472-고냥이> (0) | 2025.07.23 |