DonHurry

[Python] ๋ฐฑ์ค€ 1715๋ฒˆ - ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ ๋ณธ๋ฌธ

Problem Solving

[Python] ๋ฐฑ์ค€ 1715๋ฒˆ - ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ

_๋„๋… 2022. 12. 26. 22:59

๐Ÿ“– ๋ฌธ์ œ

 

1715๋ฒˆ: ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ

์ •๋ ฌ๋œ ๋‘ ๋ฌถ์Œ์˜ ์ˆซ์ž ์นด๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๊ฐ ๋ฌถ์Œ์˜ ์นด๋“œ์˜ ์ˆ˜๋ฅผ A, B๋ผ ํ•˜๋ฉด ๋ณดํ†ต ๋‘ ๋ฌถ์Œ์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜๋กœ ๋งŒ๋“œ๋Š” ๋ฐ์—๋Š” A+B ๋ฒˆ์˜ ๋น„๊ต๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผํ…Œ๋ฉด, 20์žฅ์˜ ์ˆซ์ž ์นด๋“œ ๋ฌถ์Œ๊ณผ 30์žฅ

www.acmicpc.net

 

๐Ÿ”Ž ํ’€์ด

๊ทธ๋ฆฌ๋””ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ฌถ์Œ์€ ๋˜๋‹ค๋ฅธ ๋ฌถ์Œ๊ณผ ๋‹ค์‹œ ๋น„๊ต๋ฅผ ์ง„ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ€์žฅ ์ž‘์€ ๋‘ ๋ฌถ์Œ์„ ๊ณจ๋ผ ์ƒˆ๋กœ์šด ๋ฌถ์Œ์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์˜ heapq๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ’ป ์ฝ”๋“œ

import sys
import heapq
input = sys.stdin.readline

N = int(input())
heap = []
for _ in range(N):
    heapq.heappush(heap, int(input()))
    
result = []

for i in range(N-1):
    # ๊ฐ€์žฅ ์ž‘์€ ๋‘ ๋ฌถ์Œ ๊บผ๋‚ด๊ธฐ
    a = heapq.heappop(heap)
    b = heapq.heappop(heap)
    k = a + b
    # ๊ฒฐ๊ณผ ์ €์žฅ
    result.append(k)
    heapq.heappush(heap, k)
   
print(sum(result))