๊ฐ์ธ์ ์ธ ๊ณต๋ถ๋ฅผ ์ํด ์ด๊ธ์ด๋ฏ๋ก ์ดํด๊ฐ ์๋ ์๋ ์์ต๋๋ค.
์ฒ์์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ DP ๋ฐฐ์ด์ 3์ฐจ์์ผ๋ก ์ ์ํ๋ค.
DP[c][n][m] ์ด๋ ๊ฒ ์ ์ํ๋ฉด, c๊ฐ 0์ผ ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋จผ์ ๊ตฌํด๋๊ณ , c๊ฐ 1์ผ ๊ฒฝ์ฐ DFS๋ก ๊ณ์ ํ์ํ๋ค๊ฐ ์ค๋ฝ์ค์ ๋ง๋๋ฉด ๋ค์ ํธ์ถ๋ถํฐ๋ c๋ฅผ 0์ผ๋ก ๋ง๋ค์ด [0][y][x]๋ฅผ ํ์ํ๋๋ฐ, ๋ง์ฝ dp[0][y][x]๊ฐ ์ด๋ฏธ ๊ฐ๋ ๊ณณ์ด๋ฉด ํด๋น ๊ฐ์ ๋ฆฌํดํ๊ณ ์๋๋ฉด ์ง์์ ์ผ๋ก ํ์ํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค. ์ง๊ธ๊น์ง๋ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ์์ด๋ณด์ธ๋ค. ํ์ง๋ง, c๊ฐ 2๊ฐ ๋๋ฉด์ ๋ฐ๋ก๊ฐ ๋ณด์ธ๋ค.
๋ฌธ์ ์์ ์ฃผ์ด์ง๋ ์์ ๋ก ํ๋ฒ ์๊ฐํด๋ณด์.
3 3 2
2 2
3 2
๊ทธ๋ผ c๊ฐ 1์ผ ๋ ํด๋นํ๋ ๊ฒฝ์ฐ์ ์๋ 3๊ฐ์ด๋ค.
(1, 1) -> (1, 2) -> (2, 2) -> (2, 3) -> (3, 3)
(1, 1) -> (2, 1) -> (2, 2) -> (2, 3) -> (3, 3)
(1, 1) -> (2, 1) -> (3, 1) -> (3, 2) -> (3, 3)
์ด์ , c๊ฐ 2์ผ ๋๋ฅผ ์๊ฐํด๋ณด์. ์์์ ์ค๋ฝ์ค์ ๋ง๋๋ฉด ๋ค์ ํธ์ถ๋ถํฐ๋ c๋ฅผ -1ํ๋ค๊ณ ํ๋ค. ๊ทธ๋ผ (2, 2)๋ (3, 1)์ ๋ง๋ ๋ค์ ์๊ฐ๋ถํฐ๋ dp[1][y][x] ๋ก ํธ์ถํ๊ฒ ๋๋๋ฐ, ๋ง์ฝ 1๋ฒ์งธ ์ค๋ฝ์ค ์์น์์ (r, c+1)์ธ (2, 3)์ ํธ์ถํ๋ค๊ณ ํด๋ณด์.
dp[1][2][3]์ 1์ด ์ง๋๋ ๊ฒฝ์ฐ์ ์์ธ 2๊ฐ ์ ์ฅ๋์ด ์์ผ๋ฏ๋ก ์ค์ ๋ก 2๊ฐ์ ์ค๋ฝ์ค ๋ชจ๋๋ฅผ ์ง๋๋ ์ํฉ์ด ์ผ์ฒด ์ผ์ด๋ ์ ์๋ ์ขํ์์๋ 2๊ฐ์ ๊ฒฝ์ฐ์ ์๊ฐ ์ถ๊ฐ๋์ด๋ฒ๋ฆฐ๋ค. ์ฆ, 3๊ฐ์ ๋ณ์๋ก ๋ง๋ 3์ฐจ์ DP ๋ฐฐ์ด๋ก๋ ํด๋น ์ขํ๊ฐ ๋ช ๋ฒ์งธ ์ค๋ฝ์ค์ด ์ง๋๊ฐ๋์ง๋ฅผ ํ๋จํ๋ ๊ธฐ์ค์ด ์๊ธฐ ๋๋ฌธ์ ์๊ธฐ ์์ ์ด ์ง๋๊ฐ ๊ธธ์์๋ ๊ฒฝ์ฐ์ ์์ ๋ํด์ง๋ ๊ฒ์ด๋ค.
๊ทธ๋์ 4์ฐจ์ DP ๋ฐฐ์ด๋ก ๋ง๋ค์ด c์ ์ํ์ ๋ฐ๋ผ i๋ฒ์งธ ์ค๋ฝ์ค์ด ์ง๋๊ฐ ๊ฒฝ์ฐ์ ์๋ฅผ ์ ์ฅํด์ฃผ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฉด c๊ฐ 2์ผ ๋ 1๋ฒ์งธ ์ค๋ฝ์ค์ ๋ฐ๊ณ ๋ค์ ํธ์ถ์ธ (2, 3)์ c๊ฐ 1, ์ต๊ทผ ๋ฐ์ ์ค๋ฝ์ค ๋ฒํธ๊ฐ 1์ด ๋์ด ํธ์ถ๋๋ค. ๊ทธ๋ผ, dp[c=1][prev=1][y=2][x=3] ๋ ์ ์ด์ ๊ฐฑ์ ๋์ง ์์ ๊ฐ์ด๋ฏ๋ก dp[c=1][prev=1][3][3] ๊น์ง ํธ์ถ๋๊ณ ์ฌ๊ธฐ์ c๊ฐ 0์ด ์๋๊ธฐ ๋๋ฌธ์ 0์ ๋ฐํํ์ฌ ๊ฒฝ์ฐ์ ์์ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
๋ฐ๋๋ก dp[c=1][prev=1][y=3][x=2] ์ธ ๊ฒฝ์ฐ๋ก ๊ฐ๋ค๋ฉด ํ์ฌ ๋น์ฅ dp์ ๊ฐ์ด ์ ์ฅ๋์ด ์์ง ์์ ํ์์ ๋ ์์ํ์ง๋ง, ๋ค์ ํธ์ถ๋ถํฐ dp[c=0][prev=2][y=3][x=3] ์ ๊ฐ์ด c๊ฐ 0์ผ ๋ 2๋ฅผ ํตํด ์ง๋๊ฐ ๊ฒฝ์ฐ์ ์ ์ฆ, c๊ฐ 1์ผ ๋ 2๋ฅผ ํตํด ๊ฐ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐํํ๊ฒ ๋๋ฏ๋ก ๊ฒฐ๊ตญ ์ค๋ฝ์ค1๊ณผ ์ค๋ณต๋์ง ์๋ ๊ธธ์ ๊ฐ ์ ์๊ฒ๋๋ค.
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ ํธ๋ฆฌ (1) | 2024.10.03 |
---|---|
16235๋ฒ ๋ฌธ์ ์ ์๊ฐ ์ค์ด๊ธฐ (1) | 2024.09.26 |
2293 - ๋์ 1 (0) | 2024.09.23 |
2294๋ฒ ๋ฌธ์ ๋ฉ๋ชจ (0) | 2024.09.22 |
2240 - ์๋๋๋ฌด (0) | 2024.09.20 |