https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV139KOaABgCFAYh
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
heapq를 사용하여 max heap, min heap을 구현
각 heapq마다 최대 최소를 구해서 dump 과정 수행
import heapq
for t in range(1, 10 + 1) :
num_dump = int(input())
boxes = list(map(int, input().split()))
min_heap = []
max_heap = []
for box in boxes :
heapq.heappush(min_heap, box)
heapq.heappush(max_heap, -box)
for n in range(num_dump) :
minimum = heapq.heappop(min_heap)
min_max = heapq.nlargest(len(min_heap), min_heap)[1:]
maximum = -1 * heapq.heappop(max_heap)
min_max = heapq.nlargest(len(max_heap), min_heap)[1:]
heapq.heappush(min_heap, minimum + 1)
heapq.heappush(max_heap, -(maximum - 1))
ans = -heapq.heappop(max_heap) - heapq.heappop(min_heap)
print(f'#{t} {ans}')
'코테풀이 > SW Expert Academy' 카테고리의 다른 글
| 22979. 문자열 옮기기 (0) | 2025.11.18 |
|---|---|
| 25469. 페인트칠 (0) | 2025.11.18 |
| 25655. 유치원생은 쉽게 푸는 문제 (0) | 2025.11.17 |
| 1954. 달팽이 숫자문제 (0) | 2025.11.17 |
| 1206. [S/W 문제해결 기본] 1일차 - View (0) | 2025.11.17 |