๋ฌธ์ https://leetcode.com/problems/frog-jump/description/ ๊ฐ๊ตฌ๋ฆฌ๋ ๊ฐ์ ๊ฑด๋๋ค. ๊ฐ์ ๋ช๊ฐ์ unit์ผ๋ก ๋๋์ด์ ธ์๊ณ , ๊ทธ๊ณณ์๋ ๋์ด ์์ ์๋ ์๊ณ ์์์๋ ์๋ค. ๊ฐ๊ตฌ๋ฆฌ๋ ๋ ์์์ ์ ํํ ์ ์์ผ๋ฉฐ ๋ฌผ๋ก ๋ฐ์ด๋ค์ด์ ์๋๋ค. ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ stones(๋)์ ์์น ๋ฆฌ์คํธ๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ๊ตฌ๋ฆฌ๊ฐ ๋ง์ง๋ง ๋์ ์ฐฉ๋ฅํ๋ฉฐ ๊ฐ์ ๊ฑด๋ ์ ์๋์ง ํ๋ณํ๋ผ. ์ฒ์ ๊ฐ๊ตฌ๋ฆฌ๋ ์ฒซ๋ฒ์งธ ๋ ์์ ์ ์์ผ๋ฉฐ, ์ฒซ๋ฒ์งธ ์ ํ๋ 1 unit๋งํผ์ด๋ค. ๋ง์ฝ ๊ฐ๊ตฌ๋ฆฌ์ ๋ง์ง๋ง jump๊ฐ k unit๋งํผ์ด์๋ค๋ฉด, ๋ค์ ์ ํ๋ k-1, k ๋๋ k+1 unit๋งํผ์ด์ด์ผ ํ๋ค. ๊ฐ๊ตฌ๋ฆฌ๋ ์ค์ง ์์ผ๋ก๋ง ๊ฐ ์ ์๋ค. ํ์ด public class LeetCode_403_FrogJump { H..
๐ ์๊ณ ๋ฆฌ์ฆ/Dynamic Programming
DP ๋ฉ๋ชจ์ด์ ์ด์
(memoization) ์ด์ ์ ๊ณ์ฐํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด์ ๋งค๋ฒ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ํ์ฌ ์ ์ฒด์ ์ธ ์คํ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๋ ๊ธฐ์ → ๋์ ๊ณํ๋ฒ์ ํต์ฌ ๊ธฐ์ ! ex) ํผ๋ณด๋์น ์์ด์ ์ฌ๊ท: ์ค๋ณตํธ์ถ์ ๋ฐ๋ณตํ๊ฒ ๋จ # memo๋ฅผ ์ํ ๋ฐฐ์ด์ ํ ๋นํ๊ณ , ๋ชจ๋ 0์ผ๋ก ์ด๊ธฐํ ํ๋ค. # memo[0]์ 0์ผ๋ก memo[1]์ 1๋ก ์ด๊ธฐํ ํ๋ค. fibo(n) IF n>=2 AND memo[n] = 0 memo[n] w K[i, w]
๋ฌธ์ https://leetcode.com/problems/unique-binary-search-trees-ii/ ์ฃผ์ด์ง n์ ๋ํด, ๋ชจ๋ ๊ตฌ์กฐ์ ์ผ๋ก ์ ์ผํ BST(์ด์ง ๊ฒ์ ํธ๋ฆฌ)๋ฅผ ๋ฐํํ๋ผ. BST๋ 1๋ถํฐ n๊น์ง ๊ณ ์ ํ ๊ฐ์ ๊ฐ๋ n๊ฐ์ ๋
ธ๋๋ก ๊ตฌ์ฑ๋๋ค. ๋ต์ ๋ฐํํ๋๋ฐ์ ์์๋ ๋ฌด๊ดํ๋ค. ํ์ด DP์ ๋ฉ๋ชจ์ด์ ์ด์
์ ์ด์ฉ - ๊ฐ์ฅ ์์ ํธ๋ฆฌ๋
ธ๋๋ถํฐ ๋ง๋ค์ด ์ด๋ฅผ ๊ธฐ๋กํด๋๊ณ , ๊ณ์ํด์ ํด๋น memo๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์ ์๊ฐ ๋ณต์ก๋: O(n^2), ๊ณต๊ฐ ๋ณต์ก๋: O(n^2) 1. JAVA public class LeetCode_95_UniqueBinarySearchTrees2 { public static class TreeNode { int val; TreeNode left; TreeNode right; T..