๐งฉ Algorithm/๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ2 ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (Dynamic Programming) Goal 1. ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ์ดํดํ๊ธฐ 2. Top-down๊ณผ bottom-up ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ(Dynamic Programing)์ด๋? ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ด๋ ์ด๋ค ๋ฌธ์ ๊ฐ ์ฃผ์ด์ก์ ๋ ๊ทธ ๋ฌธ์ ๋ฅผ ๋ ์์ ๋จ์์ ๋ฌธ์ ๋ค๋ก ์ชผ๊ฐ์ ์์ ๋ฌธ์ ๋ถํฐ ํ์ด๋๊ฐ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ ์์ ๋จ์๋ก ์ชผ๊ฐ์ง ๋ฌธ์ ๋ฅผ ํ์ด์ ์ป์ ๊ฒฐ๊ณผ๋ก ์๋ ๋ฌธ์ ์ ํด๋ต์ ์ ์ ๋ ๊ฐ๊น์์ง๋ ๋ฐฉ์์ด๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ํ์ ์ ๋ฌธ์ ๋ฅผ ์์ ๋จ์๋ก ์ชผ๊ฐค ์ ์์ ๋๋ง ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ฐ์ฅ ํํ ์์ ๊ฐ ๋ฐ๋ก ํผ๋ณด๋์น ์ซ์์ด๋ค. ํผ๋ณด๋์น ์ซ์๋ ๊ทธ ์ ์ ์ค๋ ๋ ์ซ์๋ฅผ ๊ณ์ํด์ ๋ํด ๋๊ฐ๊ธฐ ๋๋ฌธ์ n๋ฒ์งธ ์ซ์๋ฅผ ์์๋ด๊ธฐ ์ํด์ ์ฒ์๋ถํฐ ๊ณ์ ๋ํด์ค๋ฉด ๋๋ค. ๋ ์ซ์์ฉ ๋ํ๋ ์์ ๋จ.. 2023. 6. 13. [๋ฐฑ์ค] 1463๋ฒ: 1๋ก ๋ง๋ค๊ธฐ Hint 1. n์์ 2๋ 3์ ๋๋๊ฑฐ๋ 1์ ๋บ ์๊ฐํ์ง ๋ง๊ณ 1๋ถํฐ ๊ณ ๋ คํ๋ ์ฝ๋๋ก ์ง์ผํจ 2. 1๋ถํฐ n๊น์ง์ ์ซ์๋ฅผ ๊ฐ๊ฐ ๋ง๋ค๊ธฐ ์ํด์ ๋ช๋ฒ์ ์ฐ์ฐ ํ์๊ฐ ํ์ํ์ง ์๊ฐํด๋ด์ผ ํจ 3. Memoization ๊ธฐ๋ฒ ํ์ฉ ๋ฐฑ์ค 1463๋ฒ: 1๋ก ๋ง๋ค๊ธฐ (ํ์ด๋ณด๊ธฐ) n = int(input()) ans = [0] * (n+1) # ans[i] = i๊ฐ 1์ด ๋๊ธฐ ์ํ ์ฐ์ฐ ํ์ for i in range(2, n+1): ans[i] = ans[i-1] + 1 # ๋ํดํธ๋ก๋ ๊ทธ ์ ์ซ์์์ +1 ํ๊ฑฐ๋๊น ํ์๋ ๊ทธ ์ ์ซ์์ ํ์์ +1 ํ๊ฒ์ if i % 3 == 0: ans[i] = min(ans[i], ans[i // 3] + 1) # ๋ํดํธ์ x3 ํ๊ธฐ ์ ์ ์ซ์์ ํ์์์ +1 ํ๊ฑฐ ์ค์ ๋ ์์.. 2023. 2. 17. ์ด์ 1 ๋ค์