๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ’ป๐Ÿ’ญ๐ŸŽง๐ŸŒ

BOJ 1715 : ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ (Python) ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ ํ’€์ด

BOJ 1715 : ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ (Python)

adorableco 2023. 2. 19. 01:25
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

https://www.acmicpc.net/problem/1715

 

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

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

www.acmicpc.net

 

 

์ฝ”๋“œ

import sys
import heapq
n = int(sys.stdin.readline())

heap = []
for i in range(n):
    heapq.heappush(heap,int(sys.stdin.readline()))

total = 0

if n!=1:
    while len(heap)!=0:
        a = heapq.heappop(heap)
        b = heapq.heappop(heap)
        total += (a+b)
        if len(heap)!=0:
            heapq.heappush(heap,(a+b))

print(total)

 

 

ํ’€์ด

 

์˜ˆ์‹œ์—์„œ 10์žฅ 20์žฅ 40์žฅ ๋ฌถ์Œ์ด ์žˆ์œผ๋ฉด (10+20) + (30+40) = 100 ๋ฒˆ์ด ์ตœ์†Œ ๋น„๊ต ํšŸ์ˆ˜๋ผ๊ณ  ํ–ˆ๋‹ค.

์‹์„ ๋‹ค์‹œ ๋ฐ”๊พธ๋ฉด (10+20) + ((10+20)+40) = 100 ์ด๋‹ค. ์ด์ฒ˜๋Ÿผ ์ค‘๋ณต๋˜๋Š” ์—ฐ์‚ฐ์ด ์žˆ์œผ๋ฏ€๋กœ ์ด ๋ถ€๋ถ„์„ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค. → ์ค‘๋ณต๋˜๋Š” ์—ฐ์‚ฐ๋“ค์„ ์ตœ์†Ÿ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ๋จ

 

๊ทธ๋ž˜์„œ ์šฐ์„  ์ˆœ์œ„ ํ(์ •๋ ฌ๋œ ์›์†Œ๋“ค์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด)๋ฅผ ์ด์šฉํ•˜์—ฌ ์ตœ์†Ÿ๊ฐ’๋ผ๋ฆฌ ๋จผ์ € ๋”ํ•œ ๋’ค์— ์ด ๋”ํ•œ ๊ฐ’์„ ๋‹ค์‹œ ์šฐ์„  ์ˆœ์œ„ ํ์— ๋‹ด์•„์„œ ์—ฐ์‚ฐ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

 

์˜ˆ์‹œ)

์šฐ์„  ์ˆœ์œ„ ํ์— 10 -> 20 -> 40 ์œผ๋กœ ๋‹ด๊ฒจ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด

์ž‘์€ ๋‘ ๊ฐ’๋ผ๋ฆฌ ๋”ํ•œ ๊ฒƒ(10 + 20 = 30)์„ total์— ๋”ํ•ด์ค€๋‹ค. ์•„์ง ์šฐ์„  ์ˆœ์œ„ ํ ๋‚ด์— ์›์†Œ๊ฐ€ ๋‚จ์•„์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ํ•œ ๊ฐ’์„ ๋‹ค์‹œ ์šฐ์„  ์ˆœ์œ„ ํ์— ๋„ฃ์–ด์„œ 30 -> 40์ด ๋˜๋„๋ก ํ•œ๋‹ค.

 

๋˜‘๊ฐ™์ด ์ž‘์€ ๋‘ ๊ฐ’๋ผ๋ฆฌ ๋”ํ•œ ๊ฒƒ(30+40 = 70)์„ total์— ๋”ํ•ด์ค€๋‹ค.  ์ด์ œ ์šฐ์„  ์ˆœ์œ„ ํ ๋‚ด์— ๋‚จ์•„์žˆ๋Š” ์›์†Œ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ด total ๊ฐ’์ด ๋‹ต์ด ๋œ๋‹ค. 

 

์œ„์˜ ๊ณผ์ •์„ ์šฐ์„  ์ˆœ์œ„ ํ ๋‚ด์— ์žˆ๋Š” ์›์†Œ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด ๋œ๋‹ค.

๋ฐ˜์‘ํ˜•