๐ ํ์ด์ฌ์ผ๋ก ํ์ด
๐ ๋ฌธ์ ๋งํฌ :
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์ ์ค๋ช :
๋งค์ด ๊ฒ์ ์ข์ํ๋ 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 ํฉ๋๋ค.
๐ ์ ์ถ๋ ฅ ์

์ถ์ธก)
์ต์ ํ์ผ๋ก ์ ๋ ฌํ๊ณ ์ต์ ๊ฐ + 2๋ฒ์งธ ์ต์๊ฐ * 2 ํ ๊ฐ์ ๋ถ์ธ ๋ค์ ์ฐ์ฐ์ ์ฌ์ฉํ ๋ ๊ฐ์ ์ ์ธ ์ํค๊ณ cnt๋ฅผ ์ฌ๋ฆฐ๋ค. ๋ค์ ์ต์ ํ์ผ๋ก ์ ๋ ฌํ์ฌ ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค ์ต์๊ฐ์ด K๊ฐ ๋ณด๋ค ์ปค์ง๋ฉด ์์ ์ ๋ฉ์ถ๊ณ cnt๋ฅผ ์ถ๋ ฅ
๊ทผ๋ฐ ํ์ ํ์ฉํ ์ ์๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์๊ฑฐ ๊ฐ์๋ฐ...
์์ค์ฝ๋)
* 1์ฐจ) ์คํจ : ์ ํ์ฑ ๊ฒ์ฌ 61.5์ - ํจ์จ์ฑ ๊ฒ์ฌ 0์
def solution(scoville, K):
cnt = 0
scoville.sort()
while scoville[0] < K:
scoville.append(scoville[0] + (scoville[1] * 2))
scoville.pop(0) # ์ฒซ๋ฒ์งธ ๊ฐ
scoville.pop(0) # ๋๋ฒ์งธ ๊ฐ
scoville.sort()
cnt += 1
return cnt
* 2์ฐจ) ์ ํ ์ฌํญ 4๋ฒ ์ฒ๋ฆฌ ์ถ๊ฐ : ์ ํ์ฑ ๊ฒ์ฌ 80์ - ํจ์จ์ฑ ๊ฒ์ฌ 0์
def solution(scoville, K):
cnt = 0
scoville.sort()
while scoville[0] < K:
if len(scoville) == 1 :
cnt = -1
break
scoville.append(scoville[0] + (scoville[1] * 2))
scoville.pop(0) # ์ฒซ๋ฒ์งธ ๊ฐ
scoville.pop(0) # ๋๋ฒ์งธ ๊ฐ
scoville.sort()
cnt += 1
return cnt
* 3์ฐจ) ํ์ด์ฌ์ ํ๋ชจ๋์ด ์๋ค ํ๋ชจ๋ ์จ์ ์ฒ๋ฆฌ : 100์
import heapq # ๋ชจ๋์ฌ์ฉ
def solution(scoville, K):
cnt = 0
scoville.sort()
while scoville[0] < K:
if len(scoville) == 1 :
cnt = -1
break
# heappush ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ๋ฐ๋ก ์ต์ํ์ผ๋ก ์ ๋ ฌ
# heappop ์ต์๊ฐ์ ๊บผ๋ด์ด ์ถ๋ ฅํ๊ณ ์๋ ๋ฐฐ์ด์์ ์ง์ด๋ค
heapq.heappush(scoville, heapq.heappop(scoville) + heapq.heappop(scoville) * 2)
cnt += 1
return cnt
๋ฆฌ๋ทฐ)
ํ๋ฉด์ ํ ํน์ฑ์ ๋ชป์ด๋ ค์ ์ฌ์ฉํ๋ ๊ธฐ๋ถ์ด ๋ค์๋๋ค. ํ ๋ฐฉ์ ๋ฌธ์ ๋ ๋ชฐ๋ผ์ ์ ์ฉ ๋ชปํ๊ฑธ ์ฌ๊ธฐ๋ค ์ ์ฉํด ๋ณธ..
๋ถ๋ช ํน์ฑ์ ์ด๋ฆฐ ๋ฐฉ๋ฒ์ด ์์๊ฑฐ๋ผ ์๊ฐํ๋๋ฐ ์ญ์๋ ํ์ด์ฌ์ ํ์ ํนํ๋ ๋ชจ๋์ด ๋ฐ๋ก ์์๋ค.
๋ชจ๋ headq์ ๋ฉ์๋๋ฅผ ๋ณด๋ฉด
headpush๋ ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ์๋์ผ๋ก ์ต์ํ ๋ฐฉ์์ผ๋ก ์ ๋ ฌํด์ฃผ๊ณ
headpop์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ฉด์ ์๋ ๋ฐฐ์ด์์๋ ๊ทธ ๊ฐ์ ์ญ์ ํด์ฃผ๋ ์ญํ ์ ํ์ฌ headpop์ ํ๋ฉด ์์ฐ์ค๋ฝ๊ฒ 2์ฐจ ์ต์๊ฐ์ด ์ต์๊ฐ์ผ๋ก ์ฌ๋ผ์ค๊ฒ ๋๋ค.
ํ์ ๋ํ ๊ณต๋ถ๋ฅผ ๋ํ๊ฒ ๋๋ฉด ๋ชจ๋์ด ์๋ ๋ด๊ฐ ์ง ๋ฉ์๋๋ก ๋ค์ ํ๋ฒ ํ์ด๋ด์ผ๊ฒ ๋ค.
'Coding Test > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Programmers] ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ ๋ฌธ์ (2) | 2023.01.31 |
|---|---|
| Programmers] ์ ์์ผ๊ฐํ (0) | 2023.01.24 |
| Programmers] ๊ฐ์ฅ ํฐ ์ (0) | 2023.01.16 |
| Programmers] ์ ๊ท ์์ด๋ ์ถ์ฒ (0) | 2022.11.23 |
| Programmers] ์์ ์ํธ (0) | 2022.11.23 |
