ํฐ์คํ ๋ฆฌ ๋ทฐ
์ฒ์์ ๋ฌธ์ ๋ฅผ ์ฝ์์ ๋ ์ด๊ฒ ๋ญ์๋ฆฐ๊ฐํ๋๋ฐ ๊ธ๋ฐฉ ์ดํดํ๋ค. ๋ญ ๋์ถฉ ์ ์ผ ํฐ์๋ฅผ ์ค์ด๋ฉด ๋ฐฐ์๋น์ฉ์ด ์ต์๊ฐ ๋๋๊น ์ ์ผ ํฐ ์๋ฅผ ๊น๋๊ฒ์ ๋ฐ๋ณตํด์ผํ๋ค๊ณ ์๊ฐํจ
def solution(no, works):
result = 0
# ์ ์ผ ํฐ ์๋ฅผ ์ผํด์ผ์ง ๋น์ฉ์ด ์ต์ํ๊ฐ ๋๋ค. -> ํฐ ์๋ฅผ ๊น์์ผํจ
while no > 0 :
works.sort()
works[-1] -= 1
no -= 1
for n, i in enumerate(works):
works[n] = i*i
return sum(works)
def solution(no, works):
result = 0
# ์ ์ผ ํฐ ์๋ฅผ ์ผํด์ผ์ง ๋น์ฉ์ด ์ต์ํ๊ฐ ๋๋ค. -> ํฐ ์๋ฅผ ๊น์์ผํจ
while no > 0 :
works.sort()
if works[-1] == 0:
break
works[-1] -= 1
no -= 1
for n, i in enumerate(works):
works[n] = i*i
return sum(works)
์ ์ผ ํฐ ์์ ๊น์ ์์ ์ด ์์ ๋๋ฅผ ๊ณ ๋ ค๋ฅผ ์ํด์ ํ ์คํธ์ ํต๊ณผ ๋ชปํ๋ฏ! ๊ณ ์ณ์คฌ๋๋ ํต๊ณผํจ ๋ฃฐ๋ฃจ
์ฝ๋ ๋ฆฌ๋ทฐ
- ๋ฐฐ์ ๋น์ฉ ์ต์ํ ๋ฌธ์ ๋ ์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํด ํธ๋ ๊ฒ์ด ์ ์
- ๊ฐ์ง์น๊ธฐ
- list comprehension์ ์ด์ฉ
๊ฐ์ง์น๊ธฐ๊ฐ ๋ญ๊ฐ,,
์ฐ์ ์์ ํ
heapq๋ฅผ ์ฌ์ฉํด์ ์ฐ์ ์์ ํ๋ฅผ ์์ฑํ ์ ์๋ค.
import heapq
์ฒซ๋ฒ์งธ ์ธ์๋ heap ์์ฒด์ธ list์ด๊ณ , ๋๋ฒ์งธ ์ธ์๋ ํํ์ธ๋ฐ ํํ์ ์ฒซ๋ฒ์งธ ์์๋ ์ฐ์ ์์ ๊ฐ, ๋๋ฒ์งธ ์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. ํจ์์ ๋๋ฒ์งธ ์ธ์๋ฅผ ํํ์ด ์๋ ์ผ๋ฐ ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด, ๊ฐ์ ๊ธฐ์ค์ผ๋ก heap์ ๋ง๋ค์ด์ค๋ค. ํ์ด์ฌ์ด ์ ๊ณตํ๋ ํ์ ์ต์ํ์ด๋ฏ๋ก ์ฃผ์ํ๋๋กํ๊ณ ์ฝ์ ๋ณ ์๊ฐ ๋ณต์ก๋๋ O(logN)์ด๋ค.
Heap์ ์์ ์ถ๊ฐํ๊ธฐ - heappush(๋ฐฐ์ด์ด๋ฆ, (์ฐ์ ์์, ์์))
testheap = []
heapq.heappush(testheap, (3, "์ฐ์ ์์ 3"))
heapq.heappush(testheap, (4, "์ฐ์ ์์ 4"))
heapq.heappush(testheap, (8, "์ฐ์ ์์ 8"))
heapq.heappush(testheap, (1, "์ฐ์ ์์ 1"))
heapq.heappush(testheap, (10, "์ฐ์ ์์ 10"))
Heap์ ์์ ์ญ์ ํ๊ธฐ - heappop(๋ฐฐ์ด์ด๋ฆ)
heapq.heappop(heaptest)
์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํ ๋ฌธ์ ํ์ด
import heapq
def pqsolution(no, works):
if no > sum(works):
return 0
else:
# ํฐ ๊ฐ์ด ์ฐ์ ์์๊ฐ ๋์์ผํ๋๊น -๋ฅผ ๋ถ์ฌ์ ์ฐ์ ์์๋ฅผ ๋ด๋๋ค.
works = [(-i, i) for i in works]
heapq.heapify(works) # ํ์ผ๋ก ๋ง๋ค๊ธฐ (์ฐ์ ์์์ ๋ฐ๋ผ ์ ๋ ฌ๋จ)
print("์ฐ์ ์์ ํ: {}".format(works))
for _ in range(no):
# ์ ์ผ ํฐ ๊ฐ์ด ๋ฃจํธ์ ์์ผ๋ ๊บผ๋
# ๋ฃจํธ ๊บผ๋ด์ ์ฐ์ ์์ ๋ง๊ณ ๊ฐ -1์ ํด์ค๋ค.
work = heapq.heappop(works)[1] - 1
# ์ผ์ ํ ํ ๋ค์ ์ฐ์ ์์ ํ์ ์ ์ฅ
heapq.heappush(works, (-work, work))
return sum(i[1] ** 2 for i in works)
'๊ธฐ๋ก > ์ฝํ ์คํฐ๋ ๊ธฐ๋ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ต๋ ์ฉ๋์ด ์ ํด์ง FIFO ํ ํด๋์ค (0) | 2020.07.13 |
---|---|
๋๋งต๊ฒ (0) | 2020.07.12 |
๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2020.07.11 |
๋ฌธ์์ด ์์ถ (0) | 2020.07.11 |
1์ฃผ์ฐจ (0) | 2020.07.11 |
- Total
- Today
- Yesterday
- ์ ์ฒด๊ฒ์๋ฌผ ์กฐํ
- Java
- ์๊ณ ๋ฆฌ์ฆ
- ๋ถํธ ์๋์์ฑ
- ์จ๋ฆฌ์์ค
- ๊ฐ๋ฐ
- tomcat์ค์น
- java ํ๊ฒฝ๋ณ์
- ์คํ๋ง๋ถํธ ์๋์์ฑ
- ๊ฐ๋ฐํ๊ฒฝ๊ตฌ์ถ
- ๊ฒ์ํ๋ง๋ค๊ธฐ
- mysql์ค์น
- ์๋ฃ๊ตฌ์กฐ
- ์ดํด๋ฆฝ์ค ์ค์น
- ๊ฒ์๋ฌผ ์ญ์
- ์๋ฐ
- ๋ณ๋ช ์ฒ๋ฆฌ
- ๊ฒ์๋ฌผ์กฐํ
- ๊ฒ์ํ ์กฐํ
- ์ดํด๋ฆฝ์ค ํ๊ธ ์ธ์ฝ๋ฉ
- Algorithm
- ๊ฒ์ํ ์ญ์
- typeAliases
- java jdk ์ค์น
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |