728x90
๋ฐ์ํ
๋ฌธ์ ์ค๋ช
์คํธ๋ ์์ฆ ๋ํ์ค ๊ฒ์์ ํน ๋น ์ ธ ์์ต๋๋ค. ๋ํ์ค ๊ฒ์์ ์คํธ๊ฐ ๋ณด์ ํ ๋ณ์ฌ n๋ช ์ผ๋ก ์ฐ์๋๋ ์ ์ ๊ณต๊ฒฉ์ ์์๋๋ก ๋ง๋ ๊ฒ์์ ๋๋ค. ๋ํ์ค ๊ฒ์์ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ผ๋ก ์งํ๋ฉ๋๋ค.
- ์คํธ๋ ์ฒ์์ ๋ณ์ฌ n๋ช ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- ๋งค ๋ผ์ด๋๋ง๋ค enemy[i]๋ง๋ฆฌ์ ์ ์ด ๋ฑ์ฅํฉ๋๋ค.
- ๋จ์ ๋ณ์ฌ ์ค enemy[i]๋ช
๋งํผ ์๋ชจํ์ฌ enemy[i]๋ง๋ฆฌ์ ์ ์ ๋ง์ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด ๋จ์ ๋ณ์ฌ๊ฐ 7๋ช ์ด๊ณ , ์ ์ ์๊ฐ 2๋ง๋ฆฌ์ธ ๊ฒฝ์ฐ, ํ์ฌ ๋ผ์ด๋๋ฅผ ๋ง์ผ๋ฉด 7 - 2 = 5๋ช ์ ๋ณ์ฌ๊ฐ ๋จ์ต๋๋ค.
- ๋จ์ ๋ณ์ฌ์ ์๋ณด๋ค ํ์ฌ ๋ผ์ด๋์ ์ ์ ์๊ฐ ๋ ๋ง์ผ๋ฉด ๊ฒ์์ด ์ข ๋ฃ๋ฉ๋๋ค.
- ๊ฒ์์๋ ๋ฌด์ ๊ถ์ด๋ผ๋ ์คํฌ์ด ์์ผ๋ฉฐ, ๋ฌด์ ๊ถ์ ์ฌ์ฉํ๋ฉด ๋ณ์ฌ์ ์๋ชจ์์ด ํ ๋ผ์ด๋์ ๊ณต๊ฒฉ์ ๋ง์ ์ ์์ต๋๋ค.
- ๋ฌด์ ๊ถ์ ์ต๋ k๋ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์คํธ๋ ๋ฌด์ ๊ถ์ ์ ์ ํ ์๊ธฐ์ ์ฌ์ฉํ์ฌ ์ต๋ํ ๋ง์ ๋ผ์ด๋๋ฅผ ์งํํ๊ณ ์ถ์ต๋๋ค.
์คํธ๊ฐ ์ฒ์ ๊ฐ์ง๊ณ ์๋ ๋ณ์ฌ์ ์ n, ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฌด์ ๊ถ์ ํ์ k, ๋งค ๋ผ์ด๋๋ง๋ค ๊ณต๊ฒฉํด์ค๋ ์ ์ ์๊ฐ ์์๋๋ก ๋ด๊ธด ์ ์ ๋ฐฐ์ด enemy๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์คํธ๊ฐ ๋ช ๋ผ์ด๋๊น์ง ๋ง์ ์ ์๋์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- 1 ≤ n ≤ 1,000,000,000
- 1 ≤ k ≤ 500,000
- 1 ≤ enemy์ ๊ธธ์ด ≤ 1,000,000
- 1 ≤ enemy[i] ≤ 1,000,000
- enemy[i]์๋ i + 1 ๋ผ์ด๋์์ ๊ณต๊ฒฉํด์ค๋ ์ ์ ์๊ฐ ๋ด๊ฒจ์์ต๋๋ค.
- ๋ชจ๋ ๋ผ์ด๋๋ฅผ ๋ง์ ์ ์๋ ๊ฒฝ์ฐ์๋ enemy[i]์ ๊ธธ์ด๋ฅผ return ํด์ฃผ์ธ์.
์ ์ถ๋ ฅ ์
n | k | enemy | result |
7 | 3 | [4, 2, 4, 5, 3, 3, 1] | 5 |
2 | 4 | [3, 3, 3, 3] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์#1
- 1, 3, 5 ๋ผ์ด๋์ ๊ณต๊ฒฉ์ ๋ฌด์ ๊ถ์ผ๋ก ๋ง์๋ด๊ณ , 2, 4 ๋ผ์ด๋์ ๊ฐ๊ฐ ๋ณ์ฌ๋ฅผ 2๋ช , 5๋ช ์๋ชจํ๋ฉด 5๋ผ์ด๋๊น์ง ๊ณต๊ฒฉ์ ๋ง์ ์ ์์ต๋๋ค. ๋, 1, 3, 4๋ฒ์งธ ๊ณต๊ฒฉ์ ๋ฌด์ ๊ถ์ผ๋ก ๋ง์๋ด๊ณ , 2, 5 ๋ฒ์งธ ๊ณต๊ฒฉ์ ๊ฐ๊ฐ ๋ณ์ฌ๋ฅผ 2๋ช , 3๋ช ์๋ชจํ์ฌ 5๋ผ์ด๋๊น์ง ๊ณต๊ฒฉ์ ๋ง์ ์ ์์ต๋๋ค. ๊ทธ๋ณด๋ค ๋ง์ ๋ผ์ด๋๋ฅผ ๋ง๋ ๋ฐฉ๋ฒ์ ์์ผ๋ฏ๋ก 5๋ฅผ return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์#2
- ์คํธ๋ ๋ชจ๋ ๊ณต๊ฒฉ์ ๋ฌด์ ๊ถ์ ์ฌ์ฉํ์ฌ 4๋ผ์ด๋๊น์ง ๋ง์ ์ ์์ต๋๋ค.
ํ์ด
- ์ด๊ฑฐ enemy ํ๋์ฉ ๋ฌด์ ๊ถ์ผ๋ก ์ฒ๋ฆฌํ๋ฉด์,
- ๋ ์ด์ ๋ฌด์ ๊ถ์ด ์์ผ๋ฉด ์๋ก ๋ํ๋๋ ์ ๊ณผ ๋ฌด์ ๊ถ์ผ๋ก ์ฃฝ์ธ ๊ฐ์ฅ ์์ ์ ์ ์ซ์๋ฅผ ๋น๊ตํด์ ๊ตํํ๊ณ
- n์ผ๋ก enemy๋ฅผ ์ฒ๋ฆฌ. n์ด ์ฌ์ ๊ฐ ์์ผ๋ฉด ๋ฐ๋ณต.
- ๋ฌด์ ๊ถ์ผ๋ก ์ฃฝ์ธ ์ ์ ์ซ์๋ฅผ ํํ๋ก ๋ง๋ค๋ฉด ๋๊ฒ ๋ค?
import heapq
def solution(n, k, enemy):
answer = 0
๋ฌด์ ๊ถ์ฌ์ฉ = []
for e in enemy:
heapq.heappush(๋ฌด์ ๊ถ์ฌ์ฉ, e)
k -= 1 #๋ฌด์ ๊ถ ์๋๊ฐ์
if k <= 0: #๋ฌด์ ๊ถ์ด ์์ผ๋ฉด
if n < e: #๋ณ์ฌ ์ ์ฒดํฌ
break #๋ณ์ฌ๊ฐ ๋ชจ์๋ผ์ ์ข
๋ฃ
if n > ๋ฌด์ ๊ถ์ฌ์ฉ[0]: ๋ณ์ฌ์๊ฐ ์ด์ ์ ๋ฌด์ ๊ถ์ ์ฌ์ฉํ ๊ฒ๋ณด๋ค ๋ง์ผ๋ฉด ๋ฌด์ ๊ถ ์ทจ์
n -= heapq.heappop(๋ฌด์ ๊ถ์ฌ์ฉ) #๋ฌด์ ๊ถ ์ฌ์ฉ ์ทจ์
k += 1
answer += 1
return answer
- ์๋๋ค? ใ ใ ใ
- ๋ค์ ์๊ฐํด๋ณด๋ค๊ฐ ์๋์, ์ผ๋จ enemy๋ฅผ ์๋ผ์ ๋ฌด์ ๊ถ์ ๋ค ์ด ์ํ๋ก ๋ง๋ค๊ณ ์์ํ๋ค.
- ๊ทธ๋ฆฌ๊ณ n์ด 0์ด๋ฉด ๋ณ์ฌ๊ฐ 0์ด๋ผ์ ๋๋๊ฑธํ
๋ฐ
- if n<= 0: break ํ๋๋ ์๋ฌ๋๋ค.
- if n<0: break ํ๋๋ ํต๊ณผ๋์๋ค.
- ๋ฌธ์ ์ค๋ฅ ์๋๊ฐ?
- ์ด๊ฒ ๋ณ์ฌ๊ฐ 0์ด ๋์ด๋ ์ ์ ๋ค ์ฃฝ์์ผ๋ฉด ๋ค์ ์คํ ์ด์ง๋ก ์ด๋ํ๋ ๋ฐฉ์์ผ๋ก ์ดํดํด์ผ ํ๋ ๋ฏ.
- ์ง์ง ๊ฒ์์ด๋ฉด ์ ์ ๋ค์ด ๋ง๋ ์๋๋ค๊ณ ๋ฒ๊ทธ๋ผ๊ณ ํ์ ๋ฏ...
- ์ด๊ฑฐ ๋๋ฌธ์ 1์๊ฐ ๋๊ฒ ๊ณ ์ํด์ ... ์ค๋๋ 12์ ๋๊ฒจ์ ์ ๋ ๋ค. ์ฟจ๋ญ
import heapq
def solution(n, k, enemy):
if len(enemy) <= k:
return len(enemy)
๋ฌด์ ๊ถ = []
for i in range(k):
heapq.heappush(๋ฌด์ ๊ถ, enemy[i])
del enemy[:k]
์คํ
์ด์ง = k
for ์ in enemy:
#print(๋ฌด์ ๊ถ, ์คํ
์ด์ง, ์ )
if ๋ฌด์ ๊ถ[0] < ์ : #์ ์ด ๋ ์์์ง ๋ฌด์ ๊ถ์ผ๋ก ์ฃฝ์ธ ์ ์ด ๋ ์์์ง ๋น๊ต
n -= heapq.heappop(๋ฌด์ ๊ถ) #๋ณ์ฌ์ ์ฐจ๊ฐ
heapq.heappush(๋ฌด์ ๊ถ, ์ ) #๋ฌด์ ๊ถ ์ฌ์ฉ
else: #์ ์ด ๋ ์ ์ผ๋ฉด
n -= ์ #๋ณ์ฌ์ ์ฐจ๊ฐ
if n < 0:
break
์คํ
์ด์ง += 1
return ์คํ
์ด์ง
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.36ms, 10.7MB)
ํ
์คํธ 2 ใ ํต๊ณผ (1.64ms, 11.5MB)
ํ
์คํธ 3 ใ ํต๊ณผ (126.92ms, 43.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (3.86ms, 18.7MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.00ms, 10.6MB)
ํ
์คํธ 6 ใ ํต๊ณผ (107.05ms, 56.4MB)
ํ
์คํธ 7 ใ ํต๊ณผ (56.21ms, 50.4MB)
ํ
์คํธ 8 ใ ํต๊ณผ (22.18ms, 49.8MB)
ํ
์คํธ 9 ใ ํต๊ณผ (39.84ms, 49.6MB)
ํ
์คํธ 10 ใ ํต๊ณผ (126.04ms, 46.1MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.48ms, 18.8MB)
ํ
์คํธ 12 ใ ํต๊ณผ (1.35ms, 18.7MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.00ms, 10.4MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.00ms, 10.4MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.01ms, 10.4MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.00ms, 10.5MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.00ms, 10.6MB)
ํ
์คํธ 19 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.00ms, 10.3MB)
ํ
์คํธ 21 ใ ํต๊ณผ (0.01ms, 10.4MB)
ํ
์คํธ 22 ใ ํต๊ณผ (0.00ms, 10.4MB)
ํ
์คํธ 23 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 24 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 25 ใ ํต๊ณผ (0.02ms, 10.4MB)
ํ
์คํธ 26 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 27 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 28 ใ ํต๊ณผ (0.01ms, 10.4MB)
ํ
์คํธ 29 ใ ํต๊ณผ (0.05ms, 10.5MB)
ํ
์คํธ 30 ใ ํต๊ณผ (0.04ms, 10.2MB)
ํ
์คํธ 31 ใ ํต๊ณผ (0.04ms, 10.5MB)
ํ
์คํธ 32 ใ ํต๊ณผ (0.03ms, 10.4MB)
- ์์ฐธ ๊ณ ์์ ํ์ด...
import heapq as hq
def solution(n, k, enemy):
q = enemy[:k]
hq.heapify(q)
for idx in range(k,len(enemy)):
n -= hq.heappushpop(q,enemy[idx])
if n < 0:
return idx
return len(enemy)
ํ
์คํธ 1 ใ ํต๊ณผ (0.22ms, 10.5MB)
ํ
์คํธ 2 ใ ํต๊ณผ (1.45ms, 11.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (113.59ms, 43MB)
ํ
์คํธ 4 ใ ํต๊ณผ (2.15ms, 18.7MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.39ms, 10.4MB)
ํ
์คํธ 6 ใ ํต๊ณผ (58.79ms, 53.1MB)
ํ
์คํธ 7 ใ ํต๊ณผ (49.78ms, 50.4MB)
ํ
์คํธ 8 ใ ํต๊ณผ (30.46ms, 49.4MB)
ํ
์คํธ 9 ใ ํต๊ณผ (41.98ms, 49.5MB)
ํ
์คํธ 10 ใ ํต๊ณผ (172.18ms, 46MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.01ms, 18.4MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.04ms, 18.7MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.00ms, 10.1MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.00ms, 10.2MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.00ms, 10.2MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.00ms, 10.2MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.00ms, 10.2MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.00ms, 10.2MB)
ํ
์คํธ 19 ใ ํต๊ณผ (0.00ms, 9.98MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.00ms, 10.2MB)
ํ
์คํธ 21 ใ ํต๊ณผ (0.00ms, 10.3MB)
ํ
์คํธ 22 ใ ํต๊ณผ (0.00ms, 10.1MB)
ํ
์คํธ 23 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 24 ใ ํต๊ณผ (0.02ms, 10.1MB)
ํ
์คํธ 25 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 26 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 27 ใ ํต๊ณผ (0.05ms, 10.2MB)
ํ
์คํธ 28 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 29 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 30 ใ ํต๊ณผ (0.01ms, 10.1MB)
ํ
์คํธ 31 ใ ํต๊ณผ (0.06ms, 10.2MB)
ํ
์คํธ 32 ใ ํต๊ณผ (0.02ms, 10.1MB)
728x90
๋ฐ์ํ
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ์ซ์ ์นด๋ ๋๋๊ธฐ (0) | 2023.02.15 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ํ ์ด๋ธ ํด์ ํจ์ (0) | 2023.02.15 |
ํ๋ก๊ทธ๋๋จธ์ค ์ ์ฐ๊ธฐ (0) | 2023.02.14 |
ํ๋ก๊ทธ๋๋จธ์ค ๋จ์ด ํผ์ฆ (0) | 2023.02.14 |
ํ๋ก๊ทธ๋๋จธ์ค ์ธ์ฌ๊ณ ๊ณผ (0) | 2023.02.14 |