Swift Data Structure And Algorithm/Dynamic Programming 11

์ˆซ์ž ๋งŒ๋“ค๊ธฐ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์™„์ „ํƒ์ƒ‰์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒฝ์šฐ O(N^2)๋งŒ ๋˜๋”๋ผ๋„ N์ด 100,000์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์•ˆ์— ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•จ ๋”ฐ๋ผ์„œ, ๋‹ค๋ฅธ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์„ค๊ณ„ ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์œ„ ๋ฌธ์ œ์—์„œ ๋์— 1์ด ๋”ํ•ด์ง€๋Š” ๊ฒฝ์šฐ, 2๊ฐ€ ๋”ํ•ด์ง€๋Š” ๊ฒฝ์šฐ 3์ด ๋”ํ•ด์ง€๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด๋ฉด N = 4์ผ ๋•Œ, 3์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ ๊ฐ๊ฐ์— + 1์„ ํ•ด์ฃผ๋ฉด 4๊ฐ€ ๋˜๊ณ , 2๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์— ๊ฐ๊ฐ + 2๋ฅผ ํ•ด์ฃผ๋ฉด 4๊ฐ€ ๋˜๊ณ , 1์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์— + 3์„ ํ•ด์ค€ ํ›„ ์œ„ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๊ฒŒ ๋˜๋ฉด 4๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ ์ฆ‰, "๋‚˜"๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์€ "๋‚˜"๋ฅผ ์ด์šฉํ•˜๋Š” ํŒจํ„ด์œผ๋กœ ๋™์  ๊ณ„ํš๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ T[i] = 1, 2, 3์˜ ํ•ฉ์œผ๋กœ i๋ฅผ ๋งŒ๋“ค ์ˆ˜ ..