[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜
ยท
๐Ÿ“š ๋ฐฑ์ค€
๋ฌธ์ œhttps://school.programmers.co.kr/learn/courses/30/lessons/131701 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr๋”๋ณด๊ธฐ๋ฌธ์ œ ์„ค๋ช…์ฒ ํ˜ธ๋Š” ์ˆ˜์—ด์„ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋А ๋‚  ์ฒ ํ˜ธ๋Š” ์–ด๋–ค ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์›ํ˜• ์ˆ˜์—ด์˜ ์—ฐ์†ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๋ช‡ ๊ฐ€์ง€์ธ์ง€ ์•Œ์•„๋ณด๊ณ  ์‹ถ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์›ํ˜• ์ˆ˜์—ด์ด๋ž€ ์ผ๋ฐ˜์ ์ธ ์ˆ˜์—ด์—์„œ ์ฒ˜์Œ๊ณผ ๋์ด ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ์˜ ์ˆ˜์—ด์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆ˜์—ด [7, 9, 1, 1, 4] ๋กœ ์›ํ˜• ์ˆ˜์—ด์„ ๋งŒ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.์›ํ˜• ์ˆ˜์—ด์€ ์ฒ˜์Œ๊ณผ ๋์ด ์—ฐ๊ฒฐ๋˜์–ด ๋Š๊ธฐ๋Š” ๋ถ€๋ถ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์†ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด๋„ ์ผ๋ฐ˜์ ์ธ ์ˆ˜์—ด๋ณด..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ๋ฉ€๋ฆฌ๋›ฐ๊ธฐ
ยท
๐Ÿ“š ๋ฐฑ์ค€
๋ฌธ์ œhttps://school.programmers.co.kr/learn/courses/30/lessons/12914ํšจ์ง„์ด๋Š” ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ๋ฅผ ์—ฐ์Šตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํšจ์ง„์ด๋Š” ํ•œ๋ฒˆ์— 1์นธ, ๋˜๋Š” 2์นธ์„ ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นธ์ด ์ด 4๊ฐœ ์žˆ์„ ๋•Œ, ํšจ์ง„์ด๋Š”(1์นธ, 1์นธ, 1์นธ, 1์นธ)(1์นธ, 2์นธ, 1์นธ)(1์นธ, 1์นธ, 2์นธ)(2์นธ, 1์นธ, 1์นธ)(2์นธ, 2์นธ)์˜ 5๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งจ ๋ ์นธ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ€๋ฆฌ๋›ฐ๊ธฐ์— ์‚ฌ์šฉ๋  ์นธ์˜ ์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ, ํšจ์ง„์ด๊ฐ€ ๋์— ๋„๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ช‡ ๊ฐ€์ง€์ธ์ง€ ์•Œ์•„๋‚ด, ์—ฌ๊ธฐ์— 1234567๋ฅผ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด 4๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค๋ฉด, 5๋ฅผ returnํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…์ž…์ถœ๋ ฅ ์˜ˆ #1์œ„์—์„œ ์„ค๋ช…ํ•œ ๋‚ด์šฉ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค..
[DP] ํŒŒ์ด์ฌ์œผ๋กœ Dynamic Programming ์ •๋ณตํ•˜๊ธฐ
ยท
๐Ÿ“š ๋ฐฑ์ค€
์ฝ”ํ…Œ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค ๋ณด๋ฉด, ์ž์ฃผ ๋‚˜์˜ค๋Š” ๊ฐœ๋…์ธ Dynamic Programming์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค.DP๋Š” ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ ์„œ ํ‘ธ๋Š” ๋ฐฉ์‹์œผ๋กœ, ๋‹จ์ˆœํžˆ ์ชผ๊ฐœ๋Š” ๊ฒƒ ๋ฟ ์•„๋‹ˆ๋ผ ์ด๋ฏธ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•ด์„œ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š” ์ˆ˜๊ณ ๋ฅผ ๋œ์–ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ฆ‰, ๋ฐ˜๋ณต๋˜๋Š” ๊ณ„์‚ฐ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด, ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅ(memoization ๋˜๋Š” tabulation) ํ•ด๋‘๊ณ  ์žฌํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๐ŸŒฑ DP๋Š” ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ?์•„๋ž˜ ๋‘ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ ์“ธ ์ˆ˜ ์žˆ๋‹ค.1. ๊ฒน์น˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ œ : ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ2. ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ : ํฐ ๋ฌธ์ œ์˜ ์ตœ์ ํ•ด๊ฐ€ ์ž‘์€ ๋ฌธ์ œ๋“ค์˜ ์ตœ์ ํ•ด๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ๊ตฌ์กฐ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๐ŸŒฑ DP ์‚ฌ์šฉ ๋ฐฉ์‹์€?DP๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹..
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ๊ทค ๊ณ ๋ฅด๊ธฐ
ยท
๐Ÿ“š ๋ฐฑ์ค€
๋ฌธ์ œ ์„ค๋ช…๊ฒฝํ™”๋Š” ๊ณผ์ˆ˜์›์—์„œ ๊ทค์„ ์ˆ˜ํ™•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝํ™”๋Š” ์ˆ˜ํ™•ํ•œ ๊ทค ์ค‘ 'k'๊ฐœ๋ฅผ ๊ณจ๋ผ ์ƒ์ž ํ•˜๋‚˜์— ๋‹ด์•„ ํŒ๋งคํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ˆ˜ํ™•ํ•œ ๊ทค์˜ ํฌ๊ธฐ๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š์•„ ๋ณด๊ธฐ์— ์ข‹์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•œ ๊ฒฝํ™”๋Š” ๊ทค์„ ํฌ๊ธฐ๋ณ„๋กœ ๋ถ„๋ฅ˜ํ–ˆ์„ ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒฝํ™”๊ฐ€ ์ˆ˜ํ™•ํ•œ ๊ทค 8๊ฐœ์˜ ํฌ๊ธฐ๊ฐ€ [1, 3, 2, 5, 4, 5, 2, 3] ์ด๋ผ๊ณ  ํ•ฉ์‹œ๋‹ค. ๊ฒฝํ™”๊ฐ€ ๊ทค 6๊ฐœ๋ฅผ ํŒ๋งคํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ํฌ๊ธฐ๊ฐ€ 1, 4์ธ ๊ทค์„ ์ œ์™ธํ•œ ์—ฌ์„ฏ ๊ฐœ์˜ ๊ทค์„ ์ƒ์ž์— ๋‹ด์œผ๋ฉด, ๊ทค์˜ ํฌ๊ธฐ์˜ ์ข…๋ฅ˜๊ฐ€ 2, 3, 5๋กœ ์ด 3๊ฐ€์ง€๊ฐ€ ๋˜๋ฉฐ ์ด๋•Œ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์ข…๋ฅ˜๊ฐ€ ์ตœ์†Œ์ผ ๋•Œ์ž…๋‹ˆ๋‹ค.๊ฒฝํ™”๊ฐ€ ํ•œ ์ƒ์ž์— ๋‹ด์œผ๋ ค๋Š” ๊ทค์˜ ๊ฐœ์ˆ˜ k์™€ ๊ทค์˜ ํฌ๊ธฐ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด tangerine์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๊ฒฝํ™”๊ฐ€ ๊ทค k๊ฐœ๋ฅผ ๊ณ ๋ฅผ ๋•Œ ํฌ๊ธฐ๊ฐ€ ์„œ๋กœ..
๋ฐฑ์ค€ 17219: ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ
ยท
๐Ÿ“š ๋ฐฑ์ค€
๋ฌธ์ œ ์ด ๋ฌธ์ œ๋Š” ๊ฐ ์‚ฌ์ดํŠธ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•ด๋‘๊ณ , ํŠน์ • ์‚ฌ์ดํŠธ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋“ค์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค.๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ ‘๊ทผํ–ˆ๋‹ค.1. ์ „์ฒด ์‚ฌ์ดํŠธ ๊ฐœ์ˆ˜, ์ฐพ๊ณ  ์‹ถ์€ ์‚ฌ์ดํŠธ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.2. ์‚ฌ์ดํŠธ์™€ ํ•ด๋‹น ์‚ฌ์ดํŠธ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋”•์…”๋„ˆ๋ฆฌํ˜•ํƒœ๋กœ ์ €์žฅํ•œ๋‹ค.3. ์ฐพ๊ณ  ์‹ถ์€ ์‚ฌ์ดํŠธ์˜ value๊ฐ’์„ ์ฐพ์•„ answer๋ผ๋Š” ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค.4. ์›ํ•˜๋Š” ์‚ฌ์ดํŠธ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋งŒ ๋‹ด๊ธด answer ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ํ’€์ด ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ํ•ด๋‹น ๋ฌธ์ œ์—์„œ๋Š” dictionary์˜ ํŠน์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์—ˆ๋‹ค.dictionay๋Š” ํ‚ค-๊ฐ’ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , key๊ฐ’์„ ์•Œ๋ฉด ์ด์™€ ๋งค์นญ๋œ value๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.์†”์งํžˆ ๋งํ•˜๋ฉด dictionary๋กœ ํ‘ธ๋Š” ๊ฒƒ์ด hash table ๊ธฐ๋ฐ˜์˜ ํƒ์ƒ‰์ž„์„ ๋ชฐ๋ž๋‹ค... python์˜ dict()๋Š” ํ•ด์‹œํ…Œ์ด..