Algorithm/์ธํ๋ฐ(inflearn)
๐ 02 - ๋๋ค๋ฆฌ ๊ฑด๋๊ธฐ(DP) ์ฒ ์๋ ํ๊ต์ ๊ฐ๋๋ฐ ๊ฐ์ธ์ ๋ง๋ฌ๋ค. ๊ฐ์ธ์ N๊ฐ์ ๋๋ก ๋ค๋ฆฌ๋ฅผ ๋ง๋ค์ด ๋์๋ค. ์ฒ ์๋ ๋ ๋ค๋ฆฌ๋ฅผ ๊ฑด๋ ๋ ํ ๋ฒ์ ํ ์นธ ๋๋ ๋ ์นธ์ฉ ๊ฑด๋๋ฐ๋ฉด์ ๋๋ค๋ฆฌ๋ฅผ ๊ฑด๋ ์ ์๋ค. ์ฒ ์๊ฐ ๊ฐ์ธ์ ๊ฑด๋๋ ๋ฐฉ๋ฒ์ ๋ช๊ฐ์ง์ผ๊น? ๐ ์์ค ์ฝ๋ ์ฐธ๊ณ ) ๊ณ๋จ์ค๋ฅด๊ธฐ function solution(n) { let answer = 0; let dy = Array.from({ length: n + 2 }, () => 0); dy[1] = 1; dy[2] = 2; for (let i = 3; i
Algorithm/์ธํ๋ฐ(inflearn)
๐ 01 - ๊ณ๋จ์ค๋ฅด๊ธฐ(๋์ ๊ณํ๋ฒ) ์ฒ ์๋ ๊ณ๋จ์ ์ค๋ฅผ ๋ ํ ๋ฒ์ ํ ๊ณ๋จ ๋๋ ๋ ๊ณ๋จ์ฉ ์ฌ๋ผ๊ฐ๋ค. ๋ง์ฝ ์ด 4๊ณ๋จ์ ์ค๋ฅธ๋ค๋ฉด ๊ทธ ๋ฐฉ๋ฒ์ ์๋ 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2๋ก 5๊ฐ์ง์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด N๊ณ๋จ์ผ ๋ ์ฒ ์๊ฐ ์ฌ๋ผ๊ฐ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ ๋ช ๊ฐ์ง์ธ๊ฐ? ๐ ํ์ด ๋ฐฉ๋ฒ(DFS, DP) DFS ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์๋ค. ์ ๋ต์ ํ๋ฅญํ๊ฒ๋ ์ ๋์จ๋ค ๐ ํ์ง๋ง n์ ๊ฐ์ด ์ปค์ง๋ค๋ฉด...โ ์ฐ์ฐ ํ์๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๊ฒ ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ๋์ ๊ณํ๋ฒ(dynamic programming, DP)์ด ์กด์ฌํ๋ค. function solution(n) { let answer = 0; function DFS(sum) { if (sum > n)..