๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด/DP19

[๋ฐฑ์ค€] 2xn ํƒ€์ผ๋ง 1, 2 https://www.acmicpc.net/problem/11726 https://www.acmicpc.net/problem/11727 ์„ธํŠธ์ฒ˜๋Ÿผ ์ƒ๊ธด ๋‘ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜๋‹ค.์‰ฌ์šด DP ๋ฌธ์ œ๋ผ๊ณ  ํ•ด์„œ ๋ค๋ณ๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ๋นจ๋ฆฌ ๋ชปํ’€์—ˆ๋‹ค. ๋‘๋ฌธ์ œ ๋‹ค ๋‚ด๊ฐ€ ๋ช‡๋…„์ „์— ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ํ’€์—ˆ๋˜๊ธฐ ๊ธฐ๋ก์ด ์žˆ๋˜๋ฐ๊ทธ๋• ์–ด๋–ป๊ฒŒ ํ’€์—ˆ๋‚˜ ๋ชจ๋ฅด๊ฒ ๋‹ค ใ…Žใ…Ž ์šฐ์„  ๋‘ ๋ฌธ์ œ ๋ชจ๋‘, ๋ฌธ์ œ ํ’€์ด ๋ฐฉ๋ฒ•์€ ๋ชปํ’€๊ณ  ๊ณ ๋ฏผํ–ˆ๋˜ ์‹œ๊ฐ„์ด ์•„๊นŒ์šธ ์ •๋„๋กœ ์•„์ฃผ ๊ฐ„๋‹จํ–ˆ๋‹ค. n=1์ผ ๋•Œ๋ถ€ํ„ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ฐ์ ธ๋ณด๊ณ  ์ ํ™”์‹์„ ์„ธ์šฐ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. 2xn ํƒ€์ผ๋ง์˜ ๊ฒฝ์šฐ,๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋”ฐ์ ธ๋ณด๋ฉด ์ด๋ ‡๋‹ค.n=1 : 1๊ฐ€์ง€n=2 : 2๊ฐ€์ง€n=3 : 3๊ฐ€์ง€ (= 1 + 2)n=4 : 5๊ฐ€์ง€ (= 2 + 3)n=5 : 8๊ฐ€์ง€ (= 3 + 5)...ํ”ผ๋ณด๋‚˜์น˜์™€ ๋™์ผํ•œ ๊ทœ์น™์ด๋‹ค... 2024. 11. 13.
[๋ฐฑ์ค€]10211๋ฒˆ: Maximum Subarray https://www.acmicpc.net/problem/10211 10211๋ฒˆ: Maximum Subarray ํฌ๊ธฐ N์ธ ์ •์ˆ˜ํ˜• ๋ฐฐ์—ด X๊ฐ€ ์žˆ์„ ๋•Œ, X์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด(X์˜ ์—ฐ์†ํ•œ ์ผ๋ถ€๋ถ„) ์ค‘ ๊ฐ ์›์†Œ์˜ ํ•ฉ์ด ๊ฐ€์žฅ ํฐ ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ์ฐพ๋Š” Maximum subarray problem(์ตœ๋Œ€ ๋ถ€๋ถ„๋ฐฐ์—ด ๋ฌธ์ œ)์€ ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ๋งค์šฐ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ www.acmicpc.net ๐Ÿฅ ๋ธŒ๋ฃจํŠธํฌ์Šค๋กœ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ, ๋ฌธ์ œ๋ฅผ ๋ณด์ž๋งˆ์ž DP๊ฐ€ ๋– ์˜ฌ๋ผ์„œ DP ํ’€์–ด๋ณด์•˜๋‹ค. - ์ง€๊ธˆ๊นŒ์ง€์˜ ๋ถ€๋ถ„๋ฐฐ์—ด์˜ ์ตœ๋Œ€ ํ•ฉ์„ ์ €์žฅํ•  dp๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค. - dp[0] = arr[0]์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. - dp[1] ~ dp[n]๊นŒ์ง€ ์ฑ„์šด๋‹ค - ๋งค ์ธ๋ฑ์Šค๋งˆ๋‹ค ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์„ ํƒ์ง€๊ฐ€ ์ƒ๊ธด๋‹ค. 1) ํ˜„์žฌ๊นŒ์ง€์˜ ์ตœ๋Œ€ ํ•ฉ(dp[i-1])์— ํ˜„์žฌ๊ฐ’(arr[.. 2023. 10. 18.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]ํ˜ธํ…” ๋Œ€์‹ค https://school.programmers.co.kr/learn/courses/30/lessons/155651# ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์–ด๋–ค ๋ฐฉ์—์„œ ๋งˆ์ง€๋ง‰ ์†๋‹˜์ด ํ‡ด์‹ค ํ›„, ์ฒญ์†Œ๊นŒ์ง€ ๋๋‚œ ์‹œ๊ฐ„์„ ๊ทธ ๋ฐฉ์˜ available time์ด๋ผ๊ณ  ํ•˜์ž. ๊ฐ ๋ฐฉ์˜ available time์„ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด rooms ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์†๋‹˜์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ์‹ค์ด ์žˆ์œผ๋ฉด, ๊ทธ ๊ฐ์‹ค์˜ available time์„ ์ƒˆ๋กœ์šด ์†๋‹˜์˜ ์‹œ๊ฐ„์œผ๋กœ updateํ•ด์ค€๋‹ค. ์—†๋‹ค๋ฉด, ์ƒˆ๋กœ์šด ๊ฐ์‹ค์„ ์ถ”๊ฐ€ํ•˜๊ณ  available time์„ ๊ธฐ๋กํ•œ๋‹ค. python .. 2023. 6. 22.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]๋•…๋”ฐ๋จน๊ธฐ https://school.programmers.co.kr/learn/courses/30/lessons/12913 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr def solution(land): n = len(land) dp = [[0 for j in range(4)] for i in range(n)] for i in range(4): dp[0][i] = land[0][i] for i in range(1, n): dp[i][0] = land[i][0] + max(dp[i-1][1], dp[i-1][2], dp[i-1][3]) dp[i][1] = land.. 2023. 6. 10.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ https://school.programmers.co.kr/learn/courses/30/lessons/12914# ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ณด์ž๋งˆ์ž dp๋กœ ํ’€์—ˆ๋Š”๋ฐ ์ œ์ถœํ•˜๊ณ  ๋‚˜์„œ ๋‹ค๋ฅธ ๋ถ„๋“ค ํ’€์ด๋ฅผ ๋ณด๋‹ˆ๊นŒ ์žฌ๊ท€๋กœ ํ‘ผ ๋ถ„๋“ค์ด ํ›จ์”ฌ ๋งŽ์•˜๋‹ค. ์žฌ๊ท€๋กœ๋„ ํ’€์–ด๋ดค๋Š”๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ํ…Œ์ผ€์—์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋–ด๋‹ค. ๋ฌธ์ œ ์กฐ๊ฑด์ด ๋ฐ”๋€Œ์—ˆ๋‚˜? ๋ฐ”๋€Œ๊ธฐ ์ „์—๋Š” ์žฌ๊ท€๋กœ ํ’€์–ด๋„ ํ†ต๊ณผ๊ฐ€ ๋์—ˆ๋‚˜๋ด„ ์ œ์ถœ ์ฝ”๋“œ (dp) def solution(n): dp = [0]*n dp[0] = 1 #1์นธ if n >= 2: dp[1] = 2 #1์นธ ๋˜๋Š” 2์นธ for i in range(.. 2023. 5. 31.
[๋ฐฑ์ค€]1149๋ฒˆ: RGB๊ฑฐ๋ฆฌ https://www.acmicpc.net/problem/1149 1149๋ฒˆ: RGB๊ฑฐ๋ฆฌ ์ฒซ์งธ ์ค„์— ์ง‘์˜ ์ˆ˜ N(2 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ์ง‘์„ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘์œผ๋กœ ์น ํ•˜๋Š” ๋น„์šฉ์ด 1๋ฒˆ ์ง‘๋ถ€ํ„ฐ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ง‘์„ ์น ํ•˜๋Š” ๋น„์šฉ์€ 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ www.acmicpc.net ์˜ค๋žœ๋งŒ์— dp ๋ฌธ์ œ! ๋ฌธ์ œ ํ’€๋ฉด์„œ dp๋ผ๋Š”๊ฑด ์•Œ์•˜์ง€๋งŒ,,, ์ž๊พธ ์•ˆ ํ’€๋ ค์„œ ๋‹ค๋ฅธ ๋ถ„๋“ค ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค. ๋‚œ ์™œ ์ด๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ใ… ใ… ใ…  ํ’€์ด โœ… dp ๋ฐฐ์—ด์— i๋ฒˆ์งธ ์ง‘์ด ๋นจ๊ฐ„์ƒ‰์ธ๊ฒฝ์šฐ, ์ดˆ๋ก์ƒ‰์ธ ๊ฒฝ์šฐ, ํŒŒ๋ž€์ƒ‰์ธ ๊ฒฝ์šฐ์˜ ์ตœ์†Œ ๋ˆ„์  ๋น„์šฉ์„ ์ €์žฅํ•œ๋‹ค. ๐Ÿฅ i๋ฒˆ์งธ ์ง‘์ด ๋นจ๊ฐ„์ƒ‰์ธ ๊ฒฝ์šฐ ์ตœ์†Œ ๋ˆ„์  ๋น„์šฉ = (i๋ฒˆ์งธ ์ง‘์„ ๋นจ๊ฐ•์œผ๋กœ ์น ํ•˜๋Š” ๋ฐ ๋“œ๋Š” ๋น„์šฉ ) + min( i-1๋ฒˆ์งธ ์ง‘์ด ์ดˆ๋ก์ƒ‰์ธ .. 2023. 5. 27.
728x90