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. ์ด์ 1 2 3 4 ๋ค์ 728x90