โถ ๋ฌธ์ :
โถ ์ฝ๋ :
num = int(input())
data = {1:0}
i = 2
while True:
if i == num+1:
break
data[i] = data[i-1] + 1
if i % 3 == 0:
data[i] = min(data[i], data[i//3] + 1)
if i % 2 == 0:
data[i] = min(data[i], data[i//2] + 1)
i += 1
print(data[num])
โถ ๋ฌธ์ ํ์ด :
1. DP ๋ฐฉ์์ ์ฌ์ฉํด์ ํ์ดํ๋ ๋ฌธ์ ์ด๋ค.
2. ์ด๊ธฐ ๊ฐ 1์ ์ ์ธํ ์ดํ ์ซ์(2) ๋ถํฐ ๋ฐ๋ณต์ ์งํํ๋ค.
3. ํด๋น ์ซ์์์ 1์ ๋บ ๊ฒฝ์ฐ(์ด ๊ฒฝ์ฐ๋ ์ด์ ๊ฒฐ๊ณผ๊ฐ์ 1์ ๋ํจ) 3์ผ๋ก ๋๋ ๊ฒฝ์ฐ 2๋ก ๋๋ ๊ฒฝ์ฐ ๋ชจ๋๋ฅผ ๋น๊ตํด๊ฐ๋ฉด์ data ํด์ฌํ ์ด๋ธ์ ์ฑ์ด๋ค.
4. ์ํ๋ ์ธ๋ฑ์ค์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
'๐ฏ CodingTest > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BaekJoon] 1620 ๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์ (0) | 2022.04.15 |
---|---|
[BaekJoon] 1541 ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2022.04.15 |
[BaekJoon] 1107 ๋ฆฌ๋ชจ์ปจ (0) | 2022.04.14 |
[BaekJoon] 1074๋ฒ Z (0) | 2022.04.13 |
[BaekJoon] 1012 ์ ๊ธฐ๋ ๋ฐฐ์ถ (0) | 2022.04.12 |