๐ก solutions
๐ฌ ์ผ๊ทผ ํผ๋ก๋๋ฅผ ์ต์ํ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด์๋ ์ฃผ์ด์ง N์๊ฐ ๋์ works ๋ฆฌ์คํธ ์์ ์์ ๋ ์์๋ค์ ๊ฐ์ฅ ํฐ ๊ฐ๋ถํฐ -1์ฉ ์ค์ฌ๋๊ฐ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
๐ฌ works์ n์ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํ์ ๋, ํจ์จ์ฑ์ ํต๊ณผํ๊ธฐ ์ํด์๋ ๊ฐ์ ๋น๊ตํ๋ ๋ก์ง์ ์ํด heaq ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
๐ฌ ์ฃผ์ด์ง ์์ ์ค์ 3๋ฒ๊ณผ ๊ฐ์ด ์ฃผ์ด์ง N์๊ฐ ๋์์ ๋ชจ๋ ์์ ๋์ ๋ชจ๋ ๋๋ง์น ์ ์๋ ๊ฒฝ์ฐ์๋ 0์ ๋ฐ๋ก ๋ฆฌํดํ ์ ์๋๋ก ์กฐ๊ฑด์ ์ถ๊ฐํด์ผ ํ๋ค.
๐จ๐ป code
import heapq
def solution(n, works):
answer = 0
if sum(works) <= n:
return 0
hq = []
for i in works:
heapq.heappush(hq, -i)
while n:
max_work = heapq.heappop(hq) + 1
n -= 1
heapq.heappush(hq, max_work)
return sum([i**2 for i in hq])
๐ problem
๋ฌธ์ ์ค๋ช
ํ์ฌ์ Demi๋ ๊ฐ๋์ ์ผ๊ทผ์ ํ๋๋ฐ์, ์ผ๊ทผ์ ํ๋ฉด ์ผ๊ทผ ํผ๋ก๋๊ฐ ์์ ๋๋ค. ์ผ๊ทผ ํผ๋ก๋๋ ์ผ๊ทผ์ ์์ํ ์์ ์์ ๋จ์ ์ผ์ ์์ ๋์ ์ ๊ณฑํ์ฌ ๋ํ ๊ฐ์ ๋๋ค. Demi๋ N์๊ฐ ๋์ ์ผ๊ทผ ํผ๋ก๋๋ฅผ ์ต์ํํ๋๋ก ์ผํ ๊ฒ๋๋ค.Demi๊ฐ 1์๊ฐ ๋์ ์์ ๋ 1๋งํผ์ ์ฒ๋ฆฌํ ์ ์๋ค๊ณ ํ ๋, ํด๊ทผ๊น์ง ๋จ์ N ์๊ฐ๊ณผ ๊ฐ ์ผ์ ๋ํ ์์ ๋ works์ ๋ํด ์ผ๊ทผ ํผ๋ก๋๋ฅผ ์ต์ํํ ๊ฐ์ ๋ฆฌํดํ๋ ํจ์ solution์ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ- works๋ ๊ธธ์ด 1 ์ด์, 20,000 ์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค.
- works์ ์์๋ 50000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- n์ 1,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
[4, 3, 3] | 4 | 12 |
[2, 1, 2] | 1 | 6 |
[1,1] | 3 | 0 |
์
์ถ๋ ฅ ์ #1
n=4 ์ผ ๋, ๋จ์ ์ผ์ ์์
๋์ด [4, 3, 3] ์ด๋ผ๋ฉด ์ผ๊ทผ ์ง์๋ฅผ ์ต์ํํ๊ธฐ ์ํด 4์๊ฐ๋์ ์ผ์ ํ ๊ฒฐ๊ณผ๋ [2, 2, 2]์
๋๋ค. ์ด ๋ ์ผ๊ทผ ์ง์๋ 22 + 22 + 22 = 12 ์
๋๋ค.
์
์ถ๋ ฅ ์ #2
n=1์ผ ๋, ๋จ์ ์ผ์ ์์
๋์ด [2,1,2]๋ผ๋ฉด ์ผ๊ทผ ์ง์๋ฅผ ์ต์ํํ๊ธฐ ์ํด 1์๊ฐ๋์ ์ผ์ ํ ๊ฒฐ๊ณผ๋ [1,1,2]์
๋๋ค. ์ผ๊ทผ์ง์๋ 12 + 12 + 22 = 6์
๋๋ค.