๋ชฉ๋ก๋™์ ๊ณ„ํš๋ฒ• (35)

๐˜š๐˜ญ๐˜ฐ๐˜ธ ๐˜ฃ๐˜ถ๐˜ต ๐˜ด๐˜ต๐˜ฆ๐˜ข๐˜ฅ๐˜บ

[๋ฐฑ์ค€] 9095๋ฒˆ: 1, 2, 3 ๋”ํ•˜๊ธฐ - C++

๋ฌธ์ œ ์ •์ˆ˜ 4๋ฅผ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ ์ด 7๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ํ•ฉ์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ๋Š” ์ˆ˜๋ฅผ 1๊ฐœ ์ด์ƒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 ์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, n์„ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ์ •์ˆ˜ n์ด ์ฃผ์–ด์ง„๋‹ค. n์€ ์–‘์ˆ˜์ด๋ฉฐ 11๋ณด๋‹ค ์ž‘๋‹ค. ์ถœ๋ ฅ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค, n์„ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. DP๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘ธ๋Š” ๋ฌธ์ œ. ์•ž์„œ ํ’€์—ˆ๋˜ ํƒ€์ผ๋ง ๋ฌธ์ œ๋“ค๊ณผ ๋™์ผํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. 1, 2, 3๋งŒ์œผ๋กœ ์ˆซ์ž n์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. (n..

[๋ฐฑ์ค€] 11727๋ฒˆ: 2ร—n ํƒ€์ผ๋ง 2 - C++

๋ฌธ์ œ 2ร—n ์ง์‚ฌ๊ฐํ˜•์„ 1ร—2, 2ร—1๊ณผ 2ร—2 ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ 2ร—17 ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šด ํ•œ๊ฐ€์ง€ ์˜ˆ์ด๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— n์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค n โ‰ค 1,000) ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— 2ร—n ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ 10,007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. DP๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘ธ๋Š” ๋ฌธ์ œ. ์•ž์„œ ํ’€์—ˆ๋˜ 11726๋ฒˆ์ธ 2xn ํƒ€์ผ๋ง์„ ์กฐ๊ธˆ๋งŒ ์‘์šฉํ•˜๋ฉด ๋ฐ”๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€๋กœ ํ•œ ์นธ์„ 1x2 ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ• ํ•œ ๊ฐ€์ง€, ๊ฐ€๋กœ ๋‘ ์นธ์„ 2x1 ํƒ€์ผ์„ ์œ„์•„๋ž˜๋กœ ์Œ“์•„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ• ํ•˜๋‚˜, 2x2 ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ• ํ•˜๋‚˜์ธ ์ ์„ ๊ณ ๋ คํ•˜์—ฌ ์ ํ™”์‹์„ ์„ธ์šฐ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. D[n] = D[n - 1] + 2 * D[n - 2] ์ด ๋ฌธ์ œ ์—ญ์‹œ ์ดˆ๊ธฐ๊ฐ’ ์„ค์ •๊ณผ ๋งค ์—ฐ์‚ฐ..

[๋ฐฑ์ค€] 11726๋ฒˆ: 2ร—n ํƒ€์ผ๋ง - C++

๋ฌธ์ œ 2ร—n ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ 1ร—2, 2ร—1 ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ 2ร—5 ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šด ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์˜ ์˜ˆ์ด๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— n์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค n โ‰ค 1,000) ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— 2ร—n ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ 10,007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. DP๋ฅผ ์ด์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ. ๊ทœ์น™์„ ์ƒ๊ฐํ•˜๋ฉด ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™๋‹ค. ํƒ€์ผ์„ ๋ฐฐ์น˜ํ•  ๋•Œ ๋งˆ๋‹ค ๊ฐ€๋กœ ํ•œ ์นธ์„ 1x2 ํƒ€์ผ๋กœ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ํ•˜๋‚˜, ๊ฐ€๋กœ ๋‘ ์นธ์„ 2x1 ํƒ€์ผ์„ ์œ„์•„๋ž˜๋กœ ๋‘๊ฐœ ์Œ“์•„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ํ•˜๋‚˜๊ฐ€ ์žˆ์–ด ์ ํ™”์‹์„ ์„ธ์›Œ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜จ๋‹ค. D[n] = D[n - 1] + D[n- 2] ๋งž๋‹ค. ๊ทธ๋ƒฅ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๋ฌธ์ œ๋‹ค. ์ดˆ๊ธฐ๊ฐ’ ์„ค์ •๊ณผ ๋งค ์—ฐ..

[๋ฐฑ์ค€] 1463๋ฒˆ: 1๋กœ ๋งŒ๋“ค๊ธฐ - C++

๋ฌธ์ œ ์ •์ˆ˜ X์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ธ ๊ฐ€์ง€ ์ด๋‹ค. X๊ฐ€ 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด, 3์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. X๊ฐ€ 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด, 2๋กœ ๋‚˜๋ˆˆ๋‹ค. 1์„ ๋บ€๋‹ค. ์ •์ˆ˜ N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์œ„์™€ ๊ฐ™์€ ์—ฐ์‚ฐ ์„ธ ๊ฐœ๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•ด์„œ 1์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜๋Š” ํšŸ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 106๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ์—ฐ์‚ฐ์„ ํ•˜๋Š” ํšŸ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. DP๋ฅผ ์ด์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ. 1. N์ด 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด, 3์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค โžก๏ธ D[N] = D[N/3] + 1 2. N์ด 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด, 2๋กœ ๋‚˜๋ˆˆ๋‹ค โžก๏ธ D[N] = D[N/2] + 1 3. 1์„ ๋บ€๋‹ค โžก๏ธ D[N] = D[N - 1] + 1 ๊ทธ๋Ÿฌ๋‚˜ ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋™์ ๊ณ„ํš๋ฒ•(Dynamic Programming)

'์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ with C++' ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. 1. ๋™์  ๊ณ„ํš๋ฒ• ; dynamic programming 1.1 ๊ฐœ๋… ๋ถ„ํ•  ์ •๋ณต ํŒจ๋Ÿฌ๋‹ค์ž„ ๊ฐœ๋…์„ ํ™•์žฅํ•œ ๊ฒƒ์œผ๋กœ, ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ํ‘ธ๋Š” ๋ฌธ์ œ๋ฅผ ์ผ์ปซ๋Š” ๋ง์ด๋‹ค. ์–ธ๋œป ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ๋น„์Šทํ•˜๋‹ค ์ƒ๊ฐ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ถ„ํ•  ์ •๋ณต๊ณผ ๊ตฌ๋ถ„๋˜๋Š” ๋™์  ๊ณ„ํš๋ฒ•๋งŒ์˜ ํŠน์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ œ(overlapping subproblem) 2. ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ(optimal substructure) ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†์„ฑ์„ ๋งŒ์กฑํ•ด์•ผ ๋™์  ๊ณ„ํš๋ฒ•์„ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ „์ฒด ๋ฌธ์ œ๊ฐ€ ๋…๋ฆฝ์ ์ธ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋‚˜๋‰˜๋Š” ๋ถ„ํ•  ์ •๋ณต ๋ฌธ์ œ์™€ ๋‹ฌ๋ฆฌ ๋™์  ๊ณ„ํš๋ฒ•์—์„œ๋Š” ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ œ๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋“ฑ์žฅํ•œ๋‹ค. ๋˜ํ•œ ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ..