์ „์ฒด ๊ธ€ 159

ํŒฐ๋ฆฐ๋“œ๋กฌ ๋งŒ๋“ค๊ธฐ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ Dynamic Programming์˜ ์œ ๋ช…ํ•œ ๋ฌธ์ œ์ธ ํŽธ์ง‘ ๊ฑฐ๋ฆฌ ๋ฌธ์ œ์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐ์ด ๋จ. ํŽธ์ง‘ ๊ฑฐ๋ฆฌ ๋ฌธ์ œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ๋งŒ๋“ค์–ด์•ผ ํ•  ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ ๊ฐ๊ฐ ํ–‰๊ณผ ์—ด์— ์•ŒํŒŒ๋ฒณ๋“ค์„ ๋ฐฐ์น˜ํ•œ ํ›„, ๊ฐ™์€ ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ๋ฐฐ์น˜ํ–ˆ์œผ๋ฏ€๋กœ ์ฃผ๋Œ€๊ฐ์„ ์€ ๋ชจ๋‘ ๋”์ด์ƒ ์ถ”๊ฐ€ํ•ด์•ผํ•  ์•ŒํŒŒ๋ฒณ์ด ์—†์œผ๋ฏ€๋กœ ๋ชจ๋‘ 0์œผ๋กœ ์ฑ„์šธ ์ˆ˜ ์žˆ์Œ ๊ทธ๋ฆฌ๊ณ  ์ด ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ํŽธ์ง‘๊ฑฐ๋ฆฌ ๋ฌธ์ œ์™€ ๊ฐ’์„ ์ฑ„์›Œ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์ด ๋ฐ˜๋Œ€๋กœ ์•„๋ž˜์„œ ๋ถ€ํ„ฐ ์ฑ„์›Œ๋‚˜๊ฐ€์•ผ ํ•จ ๊ฐ’์„ ์ฑ„์šธ ๋•Œ ์กฐ๊ฑด์€ ์ž…๋ ฅ ๋ฐ›์€ ๋ฌธ์ž์—ด์„ str์ด๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, str[i] == str[j]๋ผ๋ฉด, ๋”์ด์ƒ ์ฑ„์šธ ์•ŒํŒŒ๋ฒณ์ด ์—†์œผ๋ฏ€๋กœ, ํ•ด๋‹น ์•ŒํŒŒ๋ฒณ์„ ์ œ์™ธํ•œ ์•ˆ์ชฝ์˜ ์•ŒํŒŒ๋ฒณ๋“ค์ด ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ์ด๋ฃจ๋ฉด ๋˜๋ฏ€๋กœ, ์™ผ์ชฝ ์•„๋ž˜ ๋Œ€๊ฐ์„ ์˜ ๊ฐ’์„ ๋ณต์‚ฌํ•˜๋ฉด ๋˜๊ณ ,..

๋‘ ๋ฌธ์ž์—ด ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์œ„ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ์œ ๋ช…ํ•œ ํŽธ์ง‘๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์œ ์‚ฌํ•œ๋ฐ, ๋‹ค๋ฅธ ์ ์€ ์‚ฝ์ž…, ์‚ญ์ œ, ๊ต์ฒด ์—ฐ์‚ฐ์ค‘ ์‚ฝ์ž…, ์‚ญ์ œ ๋‘ ๊ฐ€์ง€ ์—ฐ์‚ฐ๋งŒ ์กด์žฌํ•œ๋‹ค๋Š” ์  ๋”ฐ๋ผ์„œ A ๋ฌธ์ž์—ด์˜ ์•ŒํŒŒ๋ฒณ๋“ค์„ ํ–‰์œผ๋กœ, B ๋ฌธ์ž์—ด์˜ ์•ŒํŒŒ๋ฒณ๋“ค์„ ์—ด๋กœ ๋ฐฐ์น˜ํ–ˆ์„ ๋•Œ, ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์— ๋Œ€ํ•ด ์ €์žฅํ•ด ๋‚˜๊ฐ€๋Š” ๋™์  ๊ณ„ํš๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ ๋จผ์ €, A[i] == B[j] ๋ผ๋ฉด, ๋” ์ด์ƒ ์ˆ˜ํ–‰ํ•ด์•ผํ•  ์—ฐ์‚ฐ์ด ์—†์œผ๋ฏ€๋กœ, ์™ผ์ชฝ ๋Œ€๊ฐ์„  ์œ„์—์„œ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•˜๋ฉด ๋˜๊ณ , A[i]์™€ B[j]๊ฐ€ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด, table[i][j]์˜ ์œ„์˜ ๊ฐ’ + 1์ธ ์‚ญ์ œ ์—ฐ์‚ฐํ•œ ๊ฐ’๊ณผ, ์™ผ์ชฝ ๊ฐ’ + 1์ธ ์‚ฝ์ž… ์—ฐ์‚ฐํ•œ ๊ฐ’ ์ค‘ ์ž‘์€ ๊ฐ’์„ ํ˜„์žฌ table[i][j]์— ์ €์žฅํ•˜๋ฉด ๋จ ๋”ฐ๋ผ์„œ, table[i][j] = A[0 ~ i..

์—ฐ์† ๋ถ€๋ถ„ ์ตœ๋Œ€ํ•ฉ L

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

์ž์› ์ฑ„์ทจ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ๋กœ๋ด‡์˜ ์‹œ์ž‘์ ์—์„œ ์˜ค๋ฅธ์ชฝ๊ณผ ์•„๋ž˜์ชฝ์œผ๋กœ๋งŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๋ฐ˜๋Œ€๋กœ ์ƒ๊ฐํ•˜๋ฉด, ์ข…์ฐฉ์ ์„ ๊ธฐ์ค€์œผ๋กœ๋Š” ์™ผ์ชฝ๊ณผ ์œ„์ชฝ์—์„œ ๋” ํฐ ์ž์›์„ ์ˆ˜์ง‘ํ•˜๋ฉด์„œ ์ข…์ฐฉ์ ๊นŒ์ง€ ๋„๋‹ฌํ•  ๊ฒƒ์ž„์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Œ ๋”ฐ๋ผ์„œ ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์€ ๋ฌธ์ œ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ํ•ด๊ฒฐํ•ด ๋‚˜๊ฐ€๋Š” ๋™์  ๊ณ„ํš๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ ๋”ฐ๋ผ์„œ, T[i][j] = ๋‚˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์ค‘ ๋” ํฐ ๊ฐ’์„ ๋‚˜์—๊ฒŒ ๋”ํ•œ ๊ฐ’์ด๊ณ , T[i][j] + Max(T[i - 1][j], T[i][j - 1])๋กœ ์ ํ™”์‹์„ ์„ธ์šธ ์ˆ˜ ์žˆ์Œ (0, 0)์—์„œ๋Š” ์œ„์™€ ์™ผ์ชฝ์ด ์—†์œผ๋ฏ€๋กœ, (1, 1)๋ถ€ํ„ฐ ์›์†Œ๋ฅผ ์ฑ„์›Œ๋†“๊ณ  ์œ„ ์ ํ™”์‹์„ ์ ์šฉํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ T[N][M]์— ๋ˆ„์ ๋œ ๊ฐ’์ด ์ •๋‹ต์ด๋ฉฐ, O(N * M)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋กœ ..

์ œ๊ณฑ์ˆ˜์˜ ํ•ฉ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ๋ชจ๋“  ์ˆ˜๋Š” 1^2์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Œ ํ•˜์ง€๋งŒ ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š” ์กฐ๊ฑด์€ ์ œ๊ณฑ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ตœ์†Œํ™” ํ•˜์—ฌ ์ˆซ์ž N์„ ๋‚˜ํƒ€๋‚ด์•ผ ํ•จ ๋”ฐ๋ผ์„œ ์ผ์ผํžˆ ์‹œ๋„ํ•ด ๋ณด๊ธฐ์—๋Š” ๋ฌธ์ œ์˜ ํฌ๊ธฐ๊ฐ€ 100,000์ด๋ฏ€๋กœ ์‹œ๊ฐ„์•ˆ์— ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•  ๊ฐ€๋Šฅ์„ฑ์ด ํผ ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทœ์น™์„ ํŒŒ์•…ํ•ด์•ผ ํ•˜๋Š”๋ฐ, 1์˜ ๊ฒฝ์šฐ 1^2, 2์˜ ๊ฒฝ์šฐ 1^2 + 1^2, 3์˜ ๊ฒฝ์šฐ 1^2 + 1^2 + 1^2, 4์˜ ๊ฒฝ์šฐ 2^2 5์˜ ๊ฒฝ์šฐ 1์˜ ๊ฒฝ์šฐ์— 2^2๋ฅผ 1๊ฐœ๋ฅผ ๋”ํ•ด์ฃผ๋ฉด ๋˜๊ณ , 6์˜ ๊ฒฝ์šฐ 2์˜ ๊ฒฝ์šฐ์— 2^2๋ฅผ 1๊ฐœ ๋”ํ•ด์ฃผ๋ฉด ๋จ. ์œ„ ํŒจํ„ด์„ ์‚ดํŽด๋ณด๋ฉด, ๋ฏธ๋ฆฌ ๊ตฌํ•ด๋†“์€ ๊ฐœ์ˆ˜๋ฅผ ํ†ตํ•ด ์ž์‹ ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋™์  ๊ณ„ํš๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ ๋จผ์ € 1^2์˜ ๊ฐœ์ˆ˜๋กœ ์ดˆ๊ธฐ๊ฐ’์„ ๋ชจ๋‘ ์ €์žฅํ•ด๋†“๊ณ , ํ˜„์žฌ ์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ œ๊ณฑ์ˆ˜..