๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (122)

Hello Ocean! ๐ŸŒผ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/C++] ๋„๋‘‘์งˆ

๋ฌธ์ œ programmers.co.kr/learn/courses/30/lessons/42897 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋„๋‘‘์งˆ ๋„๋‘‘์ด ์–ด๋Š ๋งˆ์„์„ ํ„ธ ๊ณ„ํš์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งˆ์„์˜ ๋ชจ๋“  ์ง‘๋“ค์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋™๊ทธ๋ž—๊ฒŒ ๋ฐฐ์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ง‘๋“ค์€ ์„œ๋กœ ์ธ์ ‘ํ•œ ์ง‘๋“ค๊ณผ ๋ฐฉ๋ฒ”์žฅ์น˜๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ ‘ํ•œ programmers.co.kr ๋„๋‘‘์ด ์–ด๋Š ๋งˆ์„์„ ํ„ธ ๊ณ„ํš์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งˆ์„์˜ ๋ชจ๋“  ์ง‘๋“ค์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋™๊ทธ๋ž—๊ฒŒ ๋ฐฐ์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ง‘๋“ค์€ ์„œ๋กœ ์ธ์ ‘ํ•œ ์ง‘๋“ค๊ณผ ๋ฐฉ๋ฒ”์žฅ์น˜๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ ‘ํ•œ ๋‘ ์ง‘์„ ํ„ธ๋ฉด ๊ฒฝ๋ณด๊ฐ€ ์šธ๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ ์ง‘์— ์žˆ๋Š” ๋ˆ์ด ๋‹ด๊ธด ๋ฐฐ์—ด money๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๋„๋‘‘์ด ํ›”์น  ์ˆ˜ ์žˆ๋Š” ๋ˆ์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•ด๋ณด์ž! ์ œํ•œ์‚ฌํ•ญ ์ด ๋งˆ์„์— ์žˆ๋Š” ์ง‘์€ 3๊ฐœ ์ด์ƒ 1,000,0..

Algorithm 2021. 3. 31. 13:36
[๋ฐฑ์ค€/C++] 1005. ACM Craft

๋ฌธ์ œ www.acmicpc.net/problem/1005 1005๋ฒˆ: ACM Craft ์ฒซ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฃผ์–ด์ง„๋‹ค. ์ฒซ์งธ ์ค„์— ๊ฑด๋ฌผ์˜ ๊ฐœ์ˆ˜ N ๊ณผ ๊ฑด๋ฌผ๊ฐ„์˜ ๊ฑด์„ค์ˆœ์„œ๊ทœ์น™์˜ ์ด ๊ฐœ์ˆ˜ K์ด ์ฃผ์–ด์ง„๋‹ค. (๊ฑด๋ฌผ์˜ ๋ฒˆํ˜ธ๋Š” 1๋ฒˆ๋ถ€ www.acmicpc.net ํ’€์ด DP๋กœ ํ’€๋ฉด ๋œ๋‹ค! cache[i]: i๋ฅผ ์ง“๋Š”๋ฐ ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ i๋ฅผ ์ง“๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ฐพ๋Š” ํ•จ์ˆ˜์—์„œ, 1) cache๊ฐ’์ด ์žˆ์œผ๋ฉด ๋ฐ”๋กœ return 2) ์—†์œผ๋ฉด, ์ƒˆ๋กœ ๊ตฌํ•ด์„œ cache์— ์ฑ„์›Œ๋„ฃ๊ณ  return ํ•œ๋‹ค i๋ฅผ ์ง“๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ = i ๊ฑด์„ค ์‹œ๊ฐ„ + max( i์ „์— ์ง€์–ด์•ผ ํ•˜๋Š” ๊ฑด๋ฌผ๋“ค์˜ ๊ฑด์„ค ์‹œ๊ฐ„ ) ์ฝ”๋“œ #include #include #include using namespa..

Algorithm 2021. 3. 24. 15:11
[๋ฐฑ์ค€/C++] 12865. ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ

๋ฌธ์ œ www.acmicpc.net/problem/12865 12865๋ฒˆ: ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ ์ฒซ ์ค„์— ๋ฌผํ’ˆ์˜ ์ˆ˜ N(1 ≤ N ≤ 100)๊ณผ ์ค€์„œ๊ฐ€ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ K(1 ≤ K ≤ 100,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑฐ์ณ ๊ฐ ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ W(1 ≤ W ≤ 100,000)์™€ ํ•ด๋‹น ๋ฌผ๊ฑด์˜ ๊ฐ€์น˜ V(0 ≤ V ≤ 1,000) www.acmicpc.net ํ’€์ด ์ฒ˜์Œ์—๋Š”, DP๋ฅผ ์–ด๋–ป๊ฒŒ ์ด์šฉํ•ด์•ผํ• ์ง€ ๋– ์˜ค๋ฅด์ง€ ์•Š์•„์„œ ์ผ๋‹จ ์™„์ „ํƒ์ƒ‰์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋„ˆ๋ฌด ๋‹น์—ฐํ•˜๊ฒŒ๋„ ์‹œ๊ฐ„์ดˆ๊ณผ์˜€๋‹ค! ์™„์ „ํƒ์ƒ‰์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ๋‚˜๋ฉด, DP์— ๋Œ€ํ•œ ๊ฐ์ด ์˜ฌ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์ „ํ˜€ ์˜ค์ง€ ์•Š์•˜๋‹ค. ๊ฒฐ๊ตญ ๊ฒ€์ƒ‰์˜ ํž˜์„ ๋นŒ๋ ธ๋Š”๋ฐ, ์ด ๋ฌธ์ œ๋Š” ๋Œ€ํ‘œ์ ์ธ "๋ƒ…์ƒ‰ ๋ฌธ์ œ"๋ผ๊ณ  ํ•œ๋‹ค. ๋ƒ…์ƒ‰ ๋ฌธ์ œ(knapsack problem)๋ž€? ๋ƒ…์ƒ‰ ๋ฌธ..

Algorithm 2021. 3. 14. 23:33
[๋ฐฑ์ค€/C++] 1520. ๋‚ด๋ฆฌ๋ง‰ ๊ธธ

๋ฌธ์ œ www.acmicpc.net/problem/1520 1520๋ฒˆ: ๋‚ด๋ฆฌ๋ง‰ ๊ธธ ์—ฌํ–‰์„ ๋– ๋‚œ ์„ธ์ค€์ด๋Š” ์ง€๋„๋ฅผ ํ•˜๋‚˜ ๊ตฌํ•˜์˜€๋‹ค. ์ด ์ง€๋„๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ง์‚ฌ๊ฐํ˜• ๋ชจ์–‘์ด๋ฉฐ ์—ฌ๋Ÿฌ ์นธ์œผ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ๋‹ค. ํ•œ ์นธ์€ ํ•œ ์ง€์ ์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ๊ฐ ์นธ์—๋Š” ๊ทธ ์ง€์ ์˜ ๋†’์ด๊ฐ€ ์“ฐ์—ฌ ์žˆ์œผ www.acmicpc.net ํ’€์ด ์ฒ˜์Œ์—๋Š” DP๋งŒ ์ด์šฉํ•ด์„œ, cache[i][j]์— (i,j) ์œ„์น˜๊นŒ์ง€ ๋„์ฐฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋‚ด๋ฆฌ๋ง‰๊ธธ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ƒํ•˜์ขŒ์šฐ๋กœ ๋ชจ๋‘ ์ด๋™์ด ๊ฐ€๋Šฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฐฉ๋ฒ•์€ ์‹คํŒจํ–ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ƒ๊ฐ๋‚œ ๋ฐฉ๋ฒ•์€, ์ตœ๋‹จ๊ฒฝ๋กœ์ฐพ๊ธฐ ๋ฌธ์ œ๋กœ ํ•ด์„ํ•ด์„œ BFS๋กœ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์‹œ๊ฐ„์ดˆ๊ณผ ๋•Œ๋ฌธ์— ์ด ๋ฐฉ๋ฒ•์€ ์‹คํŒจํ–ˆ๋‹ค. ์ตœ์ข… ๋ฐฉ๋ฒ•์€, DFS์— DP๋ฅผ ์ ‘๋ชฉํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. DFS๋กœ ํƒ์ƒ‰ํ•˜๋˜, DP์˜ ๋ฉ”๋ชจ๋ฆฌ..

Algorithm 2021. 3. 14. 23:11