코테풀이/SW Expert Academy

1208. [S/W 문제해결 기본] 1일차 - Flatten

miimu 2025. 11. 18. 22:27

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