๋™์  ๊ณ„ํš๋ฒ•

Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[JavaScript/section 10] 02 - ๋Œ๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ

๐Ÿ“Œ 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)

[JavaScript/section 10] 01 - ๊ณ„๋‹จ์˜ค๋ฅด๊ธฐ

๐Ÿ“Œ 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)..

ํ”„๋ก ํŠธ์—”๋“œ ์—”์ง€๋‹ˆ์–ด
'๋™์  ๊ณ„ํš๋ฒ•' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก