๋ ๋งต๊ฒ
https://programmers.co.kr/learn/courses/30/lessons/42626?language=python3
๋ฌธ์ ์ค๋ช
๋งค์ด ๊ฒ์ ์ข์ํ๋ Leo๋ ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค๊ธฐ ์ํด Leo๋ ์ค์ฝ๋น ์ง์๊ฐ ๊ฐ์ฅ ๋ฎ์ ๋ ๊ฐ์ ์์์ ์๋์ ๊ฐ์ด ํน๋ณํ ๋ฐฉ๋ฒ์ผ๋ก ์์ด ์๋ก์ด ์์์ ๋ง๋ญ๋๋ค.
์์ ์์์ ์ค์ฝ๋น ์ง์ = ๊ฐ์ฅ ๋งต์ง ์์ ์์์ ์ค์ฝ๋น ์ง์ + (๋ ๋ฒ์งธ๋ก ๋งต์ง ์์ ์์์ ์ค์ฝ๋น ์ง์ * 2
Leo๋ ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๊ฐ K ์ด์์ด ๋ ๋๊น์ง ๋ฐ๋ณตํ์ฌ ์์ต๋๋ค.
Leo๊ฐ ๊ฐ์ง ์์์ ์ค์ฝ๋น ์ง์๋ฅผ ๋ด์ ๋ฐฐ์ด scoville๊ณผ ์ํ๋ ์ค์ฝ๋น ์ง์ K๊ฐ ์ฃผ์ด์ง ๋, ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ์์ด์ผ ํ๋ ์ต์ ํ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.์ ํ ์ฌํญ
- scoville์ ๊ธธ์ด๋ 2 ์ด์ 1,000,000 ์ดํ์ ๋๋ค.
- K๋ 0 ์ด์ 1,000,000,000 ์ดํ์ ๋๋ค.
- scoville์ ์์๋ ๊ฐ๊ฐ 0 ์ด์ 1,000,000 ์ดํ์ ๋๋ค.
- ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ์๋ -1์ return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์
scoville | K | return |
[1, 2, 3, 9, 10, 12] | 7 | 2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
1. ์ค์ฝ๋น ์ง์๊ฐ 1์ธ ์์๊ณผ 2์ธ ์์์ ์์ผ๋ฉด ์์์ ์ค์ฝ๋น ์ง์๊ฐ ์๋์ ๊ฐ์ด ๋ฉ๋๋ค.
์๋ก์ด ์์์ ์ค์ฝ๋น ์ง์ = 1 + (2 * 2) = 5
๊ฐ์ง ์์์ ์ค์ฝ๋น ์ง์ = [5, 3, 9, 10, 12]
2. ์ค์ฝ๋น ์ง์๊ฐ 3์ธ ์์๊ณผ 5์ธ ์์์ ์์ผ๋ฉด ์์์ ์ค์ฝ๋น ์ง์๊ฐ ์๋์ ๊ฐ์ด ๋ฉ๋๋ค.
์๋ก์ด ์์์ ์ค์ฝ๋น ์ง์ = 3 + (5 * 2) = 13
๊ฐ์ง ์์์ ์ค์ฝ๋น ์ง์ = [13, 9, 10, 12]
๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๊ฐ 7 ์ด์์ด ๋์๊ณ ์ด๋ ์์ ํ์๋ 2ํ์ ๋๋ค.
ํ์ด
๋ค์ ํ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ์ฑ ํ ์คํธ๋ ๋ชจ๋ ํต๊ณผํ๋๋ฐ ํจ์จ์ฑ ํ ์คํธ๋ฅผ ํต๊ณผํ์ง ๋ชปํฉ๋๋ค.
def solution(scoville, k):
cnt = len(scoville) - 1
for i in range(cnt):
scoville.sort()
if scoville[0] >= k:
return i
scoville.append(scoville[0] + scoville[1]*2)
del scoville[0]
del scoville[0]
if i == cnt - 1:
if scoville[0] >= k: return i + 1
return -1
ํจ์จ์ฑ ํ ์คํธ๋ฅผ ํต๊ณผํ๊ธฐ ์ํด์ ํ์ ์ฌ์ฉํฉ๋๋ค.
python์์๋ ํ ๋ชจ๋์ธ heapq
๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํ์ ๋ฐ์ดํฐ ์ ์ฅ/์ญ์ ์ ์ ๋ ฌ์ ์ ์งํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
import heapq
def solution(scoville, k):
cnt = len(scoville) - 1
heapq.heapify(scoville)
for i in range(cnt):
f = heapq.heappop(scoville)
if f >= k :
return i
s = heapq.heappop(scoville)
heapq.heappush(scoville, f + s * 2)
if i == cnt-1 :
if heapq.heappop(scoville) >= k: return i+1
return -1
'Developer > ๐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/python] ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2020.06.18 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/python] ์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2020.06.17 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] H-index (0) | 2020.06.16 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] - ํฐ ์ ๋ง๋ค๊ธฐ (0) | 2020.06.16 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] - ์กฐ์ด์คํฑ (1) | 2020.06.15 |