ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ๐ป ์ฝ๋ฉํ
์คํธ/ํ๋ก๊ทธ๋๋จธ์ค
ํ๋ก๊ทธ๋๋จธ์ค: ๋ฑ๊ตฃ๊ธธ
dirmathfl 2020. 10. 5. 18:42728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์ง์์ ํ๊ต๊น์ง ๊ฐ๋ ๊ธธ์ MxN ์ผ ๋, ํญ์ฐ๋ก ์ธํด ๊ฐ ์ ์๋ ๊ธธ์ด ์๋ค. ์ด๋, ๋ฑ๊ต๋ฅผ ํ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ๋ x, y์ ๋ฐ๋ฅธ 2์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ์ฌ ๋ฐฉ๋ฌธํ๋ ๊ฒฝ๋ก๋ฅผ ๊ธฐ๋กํ๋ ๋ฐฉ์์ผ๋ก ํ ์ ์๋ค.
๊ธฐ์กด์ ๊ทธ๋ํ์์ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 0์ ์ถ๊ฐํ DP ๋ฐฐ์ด์ ์ด๊ธฐํํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ฒ์ ์ถ๋ฐ์ ์ธ ์ง์ 1๋ก ์ด๊ธฐํํ ํ ์ ํ์์ธ `dp[x][y] = dp[x - 1][y] + dp[x][y - 1]`์ ๊ฐ ์ง์ ๋ง๋ค ์ ๋ฉ์ด๊ฐ ์๋์ง ํ์ธํ๊ณ ๊ธฐ๋กํ๋ฉด ๋๋ค. ์ ํ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํ๋์ ์ขํ๋ก๋ถํฐ ์ ๊ทผ ๊ฐ๋ฅํ ๊ฒฝ๋ก๋ ์์ ๊ทธ๋ฆผ์ ํ์ดํ์ ๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฝ๋
def solution(m, n, puddles):
answer = [[0] * (m + 1) for _ in range(n + 1)]
answer[1][1] = 1
for x in range(1, n + 1):
for y in range(1, m + 1):
if x == y == 1:
continue
if [y, x] in puddles:
answer[x][y] = 0
else:
answer[x][y] = answer[x - 1][y] + answer[x][y - 1]
return answer[-1][-1] % 1000000007
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค: ๋จ์์นด๋ฉ๋ผ (0) | 2020.10.11 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค: ๋์คํฌ ์ปจํธ๋กค๋ฌ (0) | 2020.10.11 |
ํ๋ก๊ทธ๋๋จธ์ค: ๋ ๋งต๊ฒ (0) | 2020.09.04 |
ํ๋ก๊ทธ๋๋จธ์ค: ํ๋ฆฐํฐ (0) | 2020.09.04 |
ํ๋ก๊ทธ๋๋จธ์ค: ๊ตฌ๋ช ๋ณดํธ (0) | 2020.09.03 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ