๋ฌธ์ ์ค๋ช
์ฐ์ ์คํ์ด ๋ฏผ์๋ Aํ์ฌ์ ์์ฅ ์ทจ์ ํ์ต๋๋ค. ์ด๋ฅผ ๋ชจ๋ฅด๋ ๋ฏผ์์ ์์ฌ๋ ์ ์ ์ฌ์ ๊ต์ก ์ค ์ผ๋ถ๋ฅผ ๋ฏผ์์๊ฒ ๋งก๊ฒผ์ต๋๋ค. ๋ฏผ์๊ฐ ๋งก์ ์๋ฌด๋ ์ ์ ์ฌ์ ์ค 2๋ช ์ ์ ๋ฐํ๊ณ ์ ๋ฐ๋ 2๋ช ์ด ๊ฐ์ด ๊ณต๋ถํ๊ฒ ํ๋ ๊ฒ์ ๋๋ค. ๋ชจ๋ ์ ์ ์ฌ์๋ค์ ๋ฅ๋ ฅ์น๋ ์ ์๋ก ํํ๋์ด ์๋๋ฐ, 2๋ช ์ ์ ์ ์ฌ์์ด ๊ฐ์ด ๊ณต๋ถํ๋ฉด ์๋ก์ ๋ฅ๋ ฅ์ ํก์ํ์ฌ ๋ ์ ์ ์ฌ์์ ๋ฅ๋ ฅ์น๋ ๊ณต๋ถ ์ ๋ ์ฌ๋์ ๋ฅ๋ ฅ์น์ ํฉ์ด ๋ฉ๋๋ค. ์ฆ, ๋ฅ๋ ฅ์น๊ฐ 3๊ณผ 7์ธ ๋ ์ฌ์์ด ๊ฐ์ด ๊ณต๋ถํ๋ฉด ๋ ์ฌ์์ ๋ฅ๋ ฅ์น๊ฐ ๋ชจ๋ 10์ด ๋ฉ๋๋ค. ์ ๋ฐํ 2์ธ์ ๊ต์ก์ด ๋๋๋ฉด ๋ฏผ์๋ ๋ค์ 2์ธ์ ์ ๋ฐํ์ฌ ๊ต์ก์ ์งํํ ์๋ ์์ต๋๋ค. ์ด๋ ํ๋ฒ ๋ฏผ์์๊ฒ ์ ๋ฐ๋ ์ฌ์์ด ๋ค์ ์ ๋ฐ๋ ์๋ ์์ต๋๋ค. ๋ฏผ์๊ฐ ๊ต์กํ ์ ์ ์ฌ์๋ค์ ์ ์ธํ ๋ค๋ฅธ ์ ์ ์ฌ์๋ค์ ๋ฅ๋ ฅ์น๋ ๋ณํ์ง ์์ต๋๋ค.
๋ฏผ์๋ ์ฐ์ ์คํ์ด์ด๊ธฐ ๋๋ฌธ์ ๊ต์ก ํ ๋ชจ๋ ์ ์ ์ฌ์๋ค์ ๋ฅ๋ ฅ์น์ ํฉ์ ์ต์ํํ๊ณ ์ถ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์ ์ฌ์๋ค์ ๋ฅ๋ ฅ์น๊ฐ ์์๋๋ก 10, 3, 7, 2์ด๋ฉฐ, ๋ฏผ์๊ฐ 2๋ฒ ๊ต์ก์ ํด์ผ ํ๋ค๋ฉด, ์ฒซ ๋ฒ์งธ ๊ต์ก์ ๋ ๋ฒ์งธ ์ฌ์๊ณผ ๋ค ๋ฒ์งธ ์ฌ์์ ์ ๋ฐํ๋ฉด ๋ ์ฌ์์ ๋ฅ๋ ฅ์น๊ฐ 5๊ฐ ๋์ด ์ ์ ์ฌ์๋ค์ ๋ฅ๋ ฅ์น๊ฐ 10, 5, 7, 5๊ฐ ๋ฉ๋๋ค. ๋ ๋ฒ์งธ ๊ต์ก๋ ๋ ๋ฒ์งธ ์ฌ์๊ณผ ๋ค ๋ฒ์งธ ์ฌ์์ ์ ๋ฐํ๋ฉด ์ ์ ์ฌ์๋ค์ ๋ฅ๋ ฅ์น๋ ์์๋๋ก 10, 10, 7, 10์ด ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ๊ฐ ๊ต์ก ํ ๋ชจ๋ ์ ์ ์ฌ์๋ค์ ๋ฅ๋ ฅ์น์ ํฉ์ด 37๋ก ์ต์๊ฐ ๋๋ ๊ฒฝ์ฐ์ ๋๋ค.
์ ์ ์ฌ์๋ค์ ๋ฅ๋ ฅ์น๋ฅผ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด ability์ ๋ฏผ์๊ฐ ๊ต์ก์ ์งํํด์ผ ํ๋ ํ์๋ฅผ ๋ํ๋ด๋ ์ ์ number๊ฐ ์ฃผ์ด์ก์ ๋, ๊ต์ก ํ ๋ชจ๋ ์ ์ ์ฌ์๋ค์ ๋ฅ๋ ฅ์น์ ํฉ์ ์ต์๊ฐ์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์ฌํญ
- 2 ≤ ability์ ๊ธธ์ด ≤ 1,000,000
- 1 ≤ ability์ ์์ ≤ 100
- 1 ≤ number ≤ 10,000
- return ๊ฐ์ด 10์ต ์ดํ๊ฐ ๋๋๋ก ability์ number๊ฐ ์ฃผ์ด์ง๋๋ค.
์ ์ถ๋ ฅ ์
ability | number | result |
[10, 3, 7, 2] | 2 | 37 |
[1, 2, 3, 4] | 3 | 26 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ์ฒซ ๋ฒ์งธ ์ฌ์๊ณผ ๋ ๋ฒ์งธ ์ฌ์์ ์ ๋ฐํ์ฌ ๊ณต๋ถ๋ฅผ ์ํจ ํ, ์ธ ๋ฒ์งธ ์ฌ์๊ณผ ๋ค ๋ฒ์งธ ์ฌ์์ ์ ๋ฐํ์ฌ ๊ณต๋ถ๋ฅผ ์ํต๋๋ค. ๊ทธ ํ ์ฒซ ๋ฒ์งธ ์ฌ์๊ณผ ๋ ๋ฒ์งธ ์ฌ์์ ํ๋ฒ ๋ ์ ๋ฐํด ๊ณต๋ถ๋ฅผ ์ํค๋ฉด, ์ ์ ์ฌ์๋ค์ ๋ฅ๋ ฅ์น๋ ์์๋๋ก 6, 6, 7, 7์ด ๋๊ณ , ์ด๋๊ฐ ๋ฅ๋ ฅ์น์ ํฉ์ด ์ต์์ธ 26์ด ๋ฉ๋๋ค.
ํ์ด
- ์ด๊ฑด ability ๋ฐฐ์ด์ ์์ ๊ฐ์ผ๋ก ์ ๋ ฌํ๊ณ , ์์ ๊ฐ ๋๊ฐ๋ฅผ ๋นผ์, ํฉ์ ๋๋ฒ ๋ฃ์ด์ฃผ๋ ์ผ์ number ๋งํผ ๋ฐ๋ณตํ๋ฉด ๋๋ค.
- ๊ทผ๋ฐ ์ฐ์ ์์ํ๋ฅผ ์ฐ๋ฉด ๋ฃ์ ๋ ๋ถํฐ ์ ๋ ฌ๋์ด ์์ผ๋๊น ์ ๋ ฌํ ํ์๊ฐ ์๊ณ , ๋ฃ์ด์ค ๋๋ ์๋์ ๋ ฌ์ด ๋๋ค.
- ์๋๊ฐ ๋๋ฆฌ๋ค. ํํ ์ธ ๊ฑธ ๊ทธ๋ฌ๋... ํํ ๋ช ๋ น์ด๊ฐ ๊ธธ์ด์ ๊ท์ฐฎ....
from queue import PriorityQueue
def solution(ability, number):
answer = 0
pq = PriorityQueue()
for i in ability:
pq.put(i)
for i in range(number):
a = pq.get()
b = pq.get()
pq.put(a+b)
pq.put(a+b)
while pq.empty() != True:
answer += pq.get()
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (983.50ms, 14.8MB)
ํ
์คํธ 2 ใ ํต๊ณผ (2973.13ms, 24.9MB)
ํ
์คํธ 3 ใ ํต๊ณผ (2994.13ms, 25.6MB)
ํ
์คํธ 4 ใ ํต๊ณผ (1391.92ms, 17.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (3322.82ms, 24.8MB)
ํ
์คํธ 6 ใ ํต๊ณผ (506.97ms, 12.8MB)
ํ
์คํธ 7 ใ ํต๊ณผ (650.27ms, 13MB)
ํ
์คํธ 8 ใ ํต๊ณผ (2682.30ms, 19.8MB)
ํ
์คํธ 9 ใ ํต๊ณผ (3598.64ms, 24.9MB)
ํ
์คํธ 10 ใ ํต๊ณผ (832.36ms, 13.4MB)
ํ
์คํธ 11 ใ ํต๊ณผ (3692.37ms, 27MB)
ํ
์คํธ 12 ใ ํต๊ณผ (3764.67ms, 27MB)
- ํํ ๋ช ๋ น์ด ๊ธด๊ฑด ์ด๋ ๊ฒ ์ค์ผ ์ ์๊ธด ํ๊ตฌ๋...
- ํํ๋ก ๋ฐ๊พธ๋๊น ๊ฐ๋นจ๋ผ์ง๋ค ใ ใ ใ
from heapq import heapify as heapify, heappush as push, heappop as pop
def solution(ability, number):
heapify(ability)
for i in range(number):
a = pop(ability)
b = pop(ability)
push(ability, a + b)
push(ability, a + b)
return sum(ability)
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (12.13ms, 12.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (42.94ms, 17.5MB)
ํ
์คํธ 3 ใ ํต๊ณผ (41.95ms, 17.9MB)
ํ
์คํธ 4 ใ ํต๊ณผ (21.94ms, 13.4MB)
ํ
์คํธ 5 ใ ํต๊ณผ (46.49ms, 17.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (10.28ms, 11.3MB)
ํ
์คํธ 7 ใ ํต๊ณผ (13.80ms, 11.3MB)
ํ
์คํธ 8 ใ ํต๊ณผ (35.87ms, 15MB)
ํ
์คํธ 9 ใ ํต๊ณผ (36.66ms, 17.3MB)
ํ
์คํธ 10 ใ ํต๊ณผ (23.78ms, 11.7MB)
ํ
์คํธ 11 ใ ํต๊ณผ (41.90ms, 18.6MB)
ํ
์คํธ 12 ใ ํต๊ณผ (47.33ms, 18.6MB)
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[PCCP ๋ชจ์๊ณ ์ฌ#2] ๋ณด๋ฌผ ์ง๋ (๊ธธ์ฐพ๊ธฐ) - ๋ฏธ์๋ฃ (0) | 2023.03.12 |
---|---|
[PCCP ๋ชจ์๊ณ ์ฌ#2] ์นดํ ํ์ฅ (ํ) (0) | 2023.03.11 |
[PCCP ๋ชจ์๊ณ ์ฌ#2] ์ค์ต์ฉ ๋ก๋ด (๋จ์ ๊ตฌํ) (1) | 2023.03.09 |
[PCCP ๋ชจ์๊ณ ์ฌ#1] ์ด์์ฒด์ (์ฐ์ ์์ํ) (1) | 2023.03.08 |
[PCCP ๋ชจ์๊ณ ์ฌ#1] ์ ์ ๋ฒ์น (์คํ) (0) | 2023.03.07 |