~๋ชฉ์ฐจ~
๋ฌธ์
https://www.acmicpc.net/problem/1715
๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ
- ์์ ์นด๋ ๋ญ์น๋ค ๋ถํฐ ์์๋๋ก ์ฒ๋ฆฌํด์ผ ํ๋ฏ๋ก ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค!
- ์นด๋ ๋ญ์น๊ฐ 1๊ฐ๋ผ๋ฉด ๋น๊ตํ ๋ญ์น๊ฐ ์์ผ๋ฏ๋ก 0 ๋ฐํ
- ์นด๋ ๋ญ์น๊ฐ 3๊ฐ ์ด์์ด๋ผ๋ฉด ์ต์๊ฐ 2๊ฐ๋ฅผ ๋ฝ์ ์์๋๋ก ์ฐ์ฐ(์ฐ์ ์์ ํ)
- ํ ์์ ๋ญ์น๊ฐ 2๊ฐ ๋จ์๋ค๋ฉด ๋์ด์ ์ต์ ๊ฐ 2๊ฐ๋ฅผ ์ฐพ์ง ์๊ณ ์ฐ์ฐ ๊ฐ์ ๋ํ์ฌ ์ถ๋ ฅ & ๋ฐ๋ณต๋ฌธ ์ข ๋ฃ
์์ฑ ์ฝ๋
import heapq
import sys
input = sys.stdin.readline
n = int(input()) # ๋ญ์น ๊ฐ์
nums = [] # ์ฐ์ ์์ ํ
result = 0
for _ in range(n):
heapq.heappush(nums, int(input())) # ๊ฐ ์นด๋ ๋ญ์น ์ฐ์ ์์ ํ ์ฝ์
if len(nums) == 1: # (์ฃผ์) ์นด๋ ๋ญ์น๊ฐ 1๊ฐ๋ผ๋ฉด ๋น๊ตํ ๊ฒ์ด ์์ผ๋ฏ๋ก 0 ๋ฐํ
print(0)
else: # 2๊ฐ ์ด์์ ์นด๋ ๋ญ์น๊ฐ ์๋ค๋ฉด
while nums: # ์นด๋ ๋ญ์น๊ฐ ์์ ๋์
if len(nums) == 2: # ๋ญ์น๊ฐ 2๊ฐ๋ผ๋ฉด ์ต์ ๊ฐ์๋ฅผ ๊ฐ์ง๋ ๋ญ์น๋ฅผ ์ฐพ์ง ์์๋ ๋๋ค
print(result + sum(nums)) # ๊ฒฐ๊ณผ ์ถ๋ ฅ ํ ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
break
temp = heapq.heappop(nums) + heapq.heappop(nums) # ๋จ์ ๋ญ์น ์ค ์ต์ ๊ฐ 2๊ฐ ํฉ
heapq.heappush(nums, temp) # ์ฐ์ ์์ ํ ์ฝ์
result += temp # ์ฐ์ฐ ํ์ ํฉ์ฐ
๋์์ด ๋์ จ๋ค๋ฉด ์ข์์ ๋๋ฌ์ฃผ์ธ์๐
'๐๋ฌธ์ ํ์ด > ๐งฉBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 1003 ํผ๋ณด๋์น ํจ์ | DP (0) | 2023.06.08 |
---|---|
[Python] ๋ฐฑ์ค 9095 1, 2, 3 ๋ํ๊ธฐ | DP (0) | 2023.06.07 |
[Python] ๋ฐฑ์ค 1774 ์ฐ์ฃผ์ ๊ณผ์ ๊ต๊ฐ | ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ (0) | 2023.05.29 |
[Python] ๋ฐฑ์ค 21924 ๋์ ๊ฑด์ค | ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ (2) | 2023.05.29 |
[Python] ๋ฐฑ์ค 19368 ํ์ฑ ์ฐ๊ฒฐ | ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ (0) | 2023.05.29 |