Banner

My Tech Blog (DP)

์˜ค๋Š˜์˜ ๋ช…์–ธ
" ์„ธ์ƒ์€ ๊ณ ํ†ต์œผ๋กœ ๊ฐ€๋“ํ•˜์ง€๋งŒ, ๊ทธ๊ฒƒ์„ ๊ทน๋ณตํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋กœ๋„ ๊ฐ€๋“ํ•˜๋‹ค. "
- ํ—ฌ๋ Œ ์ผˆ๋Ÿฌ (๋ฏธ๊ตญ ์ž‘๊ฐ€, ์‚ฌํšŒ์šด๋™๊ฐ€, ๊ฐ•์—ฐ๊ฐ€)
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹ ํ’€์ด๋ฐฉ๋ฒ•1. dp[][] ๋ฐฐ์—ด ์„ ์–ธ 2. ์ฒซ ๋ฒˆ์งธ ์ค„ ๊ฐ’ ์ฑ„์šฐ๊ธฐ (dp[0][0] = triangle[0][0])2. ์™ผ์ชฝ ์ฒซ๋ฒˆ์งธ ์—ด์ธ dp[i][0] ๊ฐ’์€ ์ด์ „ ์ค„์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ’๋ผ๋ฆฌ ๋”ํ•ด์„œ ์ž…๋ ฅํ•œ๋‹ค. (dp[i][0] = dp[i-1][0] + triangle[i][0]) 3. ๊ทธ ์™ธ์˜ ๊ฐ’๋“ค์€ ์œ„์ชฝ๊ณผ ์™ผ์ชฝ์—์„œ ์˜ค๋Š” ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ตœ๋Œ€๊ฐ’์„ ๋”ํ•˜๊ธฐ(dp[i][j] = Math.max(dp[i-1][j-1], dp[i-1][j]) + triangle[i][j]) ์ฆ‰, ์œ„์ชฝ์—์„œ ์˜ค๊ฑฐ๋‚˜ ์™ผ์ชฝ ์œ„์—์„œ ์˜จ ๊ฐ’ ์ค‘ ๋” ํฐ ๊ฐ’์— ํ˜„์žฌ triangle[i][j] ๊ฐ’์„ ๋”ํ•œ๋‹ค. dp[][] ๋ฐฐ์—ด ์„ ์–ธ๋‚˜์ฒ˜๋Ÿผ ์ˆ˜ํ•™์„ ์–ด๋ ค์›Œํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๋ฐฐ์—ด์„ ๋ˆˆ์œผ๋กœ ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ์‹œ๊ฐํ™” ํ•ด ๋ณด์•˜๋‹ค.์ฝ”..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๊ณ„์†๋˜๋Š” ํญ์šฐ๋กœ ์ผ๋ถ€ ์ง€์—ญ์ด ๋ฌผ์— ์ž ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋ฌผ์— ์ž ๊ธฐ์ง€ ์•Š์€ ์ง€์—ญ์„ ํ†ตํ•ด ํ•™๊ต๋ฅผ ๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ง‘์—์„œ ํ•™๊ต๊นŒ์ง€ ๊ฐ€๋Š” ๊ธธ์€ m x n ํฌ๊ธฐ์˜ ๊ฒฉ์ž๋ชจ์–‘์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ m = 4, n = 3 ์ธ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.  ๊ฐ€์žฅ ์™ผ์ชฝ ์œ„, ์ฆ‰ ์ง‘์ด ์žˆ๋Š” ๊ณณ์˜ ์ขŒํ‘œ๋Š” (1, 1)๋กœ ๋‚˜ํƒ€๋‚ด๊ณ  ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜, ์ฆ‰ ํ•™๊ต๊ฐ€ ์žˆ๋Š” ๊ณณ์˜ ์ขŒํ‘œ๋Š” (m, n)์œผ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฒฉ์ž์˜ ํฌ๊ธฐ m, n๊ณผ ๋ฌผ์ด ์ž ๊ธด ์ง€์—ญ์˜ ์ขŒํ‘œ๋ฅผ ๋‹ด์€ 2์ฐจ์› ๋ฐฐ์—ด puddles์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ๊ณผ ์•„๋ž˜์ชฝ์œผ๋กœ๋งŒ ์›€์ง์—ฌ ์ง‘์—์„œ ํ•™๊ต๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋‹จ๊ฒฝ๋กœ์˜ ๊ฐœ์ˆ˜๋ฅผ 1,000,000,007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ๊ฒฉ์ž์˜ ํฌ๊ธฐ m, n์€ 1 ์ด์ƒ ..
์ƒ๋‹จ์œผ๋กœ