~๋ชฉ์ฐจ~
๋ฌธ์
https://www.acmicpc.net/problem/1463
๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ
- ์ ํ์ ์ธ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ์ด๋ค.
- ๊ฐ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ ํ์ํ ์ต์ ์ฐ์ฐ์ ์ ์ฅํ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฅ ๋ฐ์ N ํฌ๊ธฐ๋ก ์์ฑ.
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
๋ฐํ ์ (BottomUp) : ๋ฐ๋ณต๋ฌธ
ํ๋ค์ด(TopDown) : ์ฌ๊ท
๋ฐํ ์ ๋ฐฉ์์ด ์คํ ํฌ๊ธฐ ์ ํ์ผ๋ก๋ถํฐ ์์ ๋ก์์ผ๋ก, ์ฒ์ ์ฐ์ฐ์ ์ ์ฅํ์ฌ ์ดํ ๋์ผํ ์ฐ์ฐ ๋ฐ์์
์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต ์ฐ์ฐ์ ํผํ ์ ์๋ค.
- ์ต์ข ์ ์ผ๋ก 1์ ๋ง๋๋ ํ๋ก๊ทธ๋จ์ด๋ฏ๋ก 2๋ถํฐ ๊ตฌํ๋ ค๋ n๊น์ง ๊ฐ ์๋ฅผ ์ํ ์ต์ ์ฐ์ฐ์ ๊ตฌํ๋ค.
- ์ฆ 2๋ผ๋ฉด -1์ ๋นผ๋ ์ฐ์ฐ๊ณผ 2๋ก ๋๋๋ ์ฐ์ฐ์ ํ๋ฉด ๋ชจ๋ ํ ๋ฒ์ ์ฐ์ฐ์ผ๋ก ๊ฐ๋ฅํ๋ฏ๋ก
์ต์ข ์ ์ผ๋ก dp[2]์ 1์ด๋ผ๋ ๊ฐ์ด ์ ๋ ฅ๋๋ค.
- ์ด๋ฅผ ์ฐ์์ ์ผ๋ก ์ํํจ์ผ๋ก์จ dp[n]์๋ n์ ๊ตฌํ๊ธฐ ์ํ ์ต์ ์ฐ์ฐ์ ๊ฐ์ด ์ ์ฅ๋๋ค.
์์ฑ ์ฝ๋
n = int(input())
dp = [0]*(n+1) # ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ์ํด์ ํ์ํ ์ต์ ์ฐ์ฐ ํ์ ์ ์ฅ
for i in range(2, n+1): # ๋ฐํ
์
๋ฐฉ์
dp[i] = dp[i-1] + 1 # -1 1ํ ์ํ
if i % 3 == 0:
dp[i] = min(dp[i//3] + 1, dp[i]) # 3์ ๋ฐฐ์๋ผ๋ฉด
if i % 2 == 0:
dp[i] = min(dp[i//2] + 1, dp[i]) # 2์ ๋ฐฐ์๋ผ๋ฉด
print(dp[n])
๋์์ด ๋์ จ๋ค๋ฉด ์ข์์ ๋๋ฌ์ฃผ์ธ์๐
'๐๋ฌธ์ ํ์ด > ๐งฉBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 18352 ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ | ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ (0) | 2023.05.16 |
---|---|
[Python] ๋ฐฑ์ค 1753 ์ต๋จ ๊ฒฝ๋ก | ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ (0) | 2023.05.16 |
[Python] ๋ฐฑ์ค 9663 N-Queen | ์๊ฐ์ด๊ณผ (2) | 2023.04.18 |
[Python] ๋ฐฑ์ค 10819 ์ฐจ์ด๋ฅผ ์ต๋๋ก | ์์ด/์กฐํฉ | Permutations/Combinations (0) | 2023.03.02 |
[Python] ๋ฐฑ์ค 2089 -2์ง์ (0) | 2023.03.02 |