๋ฌธ์
๋ฌธ์
์ค๊ท๋ NรM ํฌ๊ธฐ์ ๋ฏธ๋ก์ ๊ฐํ์๋ค. ๋ฏธ๋ก๋ 1ร1ํฌ๊ธฐ์ ๋ฐฉ์ผ๋ก ๋๋์ด์ ธ ์๊ณ , ๊ฐ ๋ฐฉ์๋ ์ฌํ์ด ๋์ฌ์ ธ ์๋ค. ๋ฏธ๋ก์ ๊ฐ์ฅ ์ผ์ชฝ ์ ๋ฐฉ์ (1, 1)์ด๊ณ , ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ซ ๋ฐฉ์ (N, M)์ด๋ค.
์ค๊ท๋ ํ์ฌ (1, 1)์ ์๊ณ , (N, M)์ผ๋ก ์ด๋ํ๋ ค๊ณ ํ๋ค. ์ค๊ท๊ฐ (r, c)์ ์์ผ๋ฉด, (r+1, c), (r, c+1), (r+1, c+1)๋ก ์ด๋ํ ์ ์๊ณ , ๊ฐ ๋ฐฉ์ ๋ฐฉ๋ฌธํ ๋๋ง๋ค ๋ฐฉ์ ๋์ฌ์ ธ์๋ ์ฌํ์ ๋ชจ๋ ๊ฐ์ ธ๊ฐ ์ ์๋ค. ๋, ๋ฏธ๋ก ๋ฐ์ผ๋ก ๋๊ฐ ์๋ ์๋ค.
์ค๊ท๊ฐ (N, M)์ผ๋ก ์ด๋ํ ๋, ๊ฐ์ ธ์ฌ ์ ์๋ ์ฌํ ๊ฐ์์ ์ต๋๊ฐ์ ๊ตฌํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ฏธ๋ก์ ํฌ๊ธฐ N, M์ด ์ฃผ์ด์ง๋ค. (1 โค N, M โค 1,000)
๋์งธ ์ค๋ถํฐ N๊ฐ ์ค์๋ ์ด M๊ฐ์ ์ซ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, r๋ฒ์งธ ์ค์ c๋ฒ์งธ ์๋ (r, c)์ ๋์ฌ์ ธ ์๋ ์ฌํ์ ๊ฐ์์ด๋ค. ์ฌํ์ ๊ฐ์๋ 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ค๊ท๊ฐ (N, M)์ผ๋ก ์ด๋ํ ๋, ๊ฐ์ ธ์ฌ ์ ์๋ ์ฌํ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด๊ณผ์
1.๊ท์น
- dp์ด๋ฏ๋ก ์ ํ์๊ณผ ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ด์ฉํฉ๋๋ค.
- ์ค๊ท๊ฐ (r, c)์ ์์ผ๋ฉด, (r+1, c), (r, c+1), (r+1, c+1)๋ก ์ด๋ํ ์ ์์ต๋๋ค.
- ์ฌํ์ ๊ฐ์๋ 0 โค C โค 100 ์ ๋๋ค.
2.์์
NxMํฌ๊ธฐ์ ๋ฏธ๋ก์ด๊ธฐ์ 2์ฐจ๋ฐฐ์ด์ ์ด์ฉํฉ๋๋ค.
๋จผ์ , ์ปดํ์ผ๋ฌ๋ 2์ฐจ์๋ฐฐ์ด์
d[0][0], d[0][1], d[0][2] ... d[0][m-1],
d[1][0], d[1][1], d[1][2] ... d[1][m-1]
....
d[n-1][1], d[n-1][1], d[n-1][2] ... d[n-1][m-1]
์ ์์๋ก d[0][0]๋ถํฐ d[N-1][M-1]๊น์ง ํ๋ฒ์ฉ ๋ชจ๋ ์์๋ฅผ ์ฒดํฌํ๊ธฐ์
์ค๊ท๊ฐ d[0][0]์์๋ถํฐ d[N-1][M-1]๊น์ง, ํ์ฌ ์๋ฆฌ(d[i][j])์์ ๋ค๋์์์ d[r-1, c], d[r, c-1], d[r-1, c-1] ์ค ์ ์ผ ๋ง์ ์ฌํ์ ์ ํํด์ d[i][j]์ ์ ์ฅํ๋ค๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
๊ฒฐ๊ตญ ๋์ ๋ ์ต๋๊ฐ์ d[N-1][M-1] ์ ์ฅ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ ํ์์ d[i][j] = maze[i][j] + max(d[i-1, j-1], max(d[i-1, j], d[i, j-1])) ๊ฐ ๋ฉ๋๋ค.
3.์ฝ๋
'๐ค PS(Problem Solving) > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/c++] 10942๋ฒ - ํฐ๋ฆฐ๋๋กฌ? (0) | 2019.08.04 |
---|---|
[๋ฐฑ์ค/c++] 1890๋ฒ - ์ ํ (0) | 2019.08.03 |
[๋ฐฑ์ค/c++] 11004๋ฒ - K๋ฒ์งธ ์ (0) | 2019.08.02 |
[๋ฐฑ์ค/c++] 11652๋ฒ - ์นด๋ (0) | 2019.08.02 |
[๋ฐฑ์ค/c++] 10989๋ฒ - ์ ์ ๋ ฌํ๊ธฐ3 (0) | 2019.07.30 |