๐ข ๋ฑ๊ตฃ๊ธธ
1. ๋ฌธ์ ๋งํฌ
2. ์ฝ๋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"""
๋ฑ๊ตฃ๊ธธ
๐ ๋ฌธ์
๊ณ์๋๋ ํญ์ฐ๋ก ์ผ๋ถ ์ง์ญ์ด ๋ฌผ์ ์ ๊ฒผ์ต๋๋ค. ๋ฌผ์ ์ ๊ธฐ์ง ์์ ์ง์ญ์ ํตํด ํ๊ต๋ฅผ ๊ฐ๋ ค๊ณ ํฉ๋๋ค.
์ง์์ ํ๊ต๊น์ง ๊ฐ๋ ๊ธธ์ m x n ํฌ๊ธฐ์ ๊ฒฉ์๋ชจ์์ผ๋ก ๋ํ๋ผ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ผ์ชฝ ์, ์ฆ ์ง์ด ์๋ ๊ณณ์ ์ขํ๋ (1, 1)๋ก ๋ํ๋ด๊ณ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋,
์ฆ ํ๊ต๊ฐ ์๋ ๊ณณ์ ์ขํ๋ (m, n)์ผ๋ก ๋ํ๋
๋๋ค.
๊ฒฉ์์ ํฌ๊ธฐ m, n๊ณผ ๋ฌผ์ด ์ ๊ธด ์ง์ญ์ ์ขํ๋ฅผ ๋ด์ 2์ฐจ์ ๋ฐฐ์ด puddles์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค.
์ค๋ฅธ์ชฝ๊ณผ ์๋์ชฝ์ผ๋ก๋ง ์์ง์ฌ ์ง์์ ํ๊ต๊น์ง ๊ฐ ์ ์๋ ์ต๋จ๊ฒฝ๋ก์ ๊ฐ์๋ฅผ
1,000,000,007๋ก ๋๋ ๋๋จธ์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐งก ์ ํ ์ฌํญ
๊ฒฉ์์ ํฌ๊ธฐ m, n์ 1 ์ด์ 100 ์ดํ์ธ ์์ฐ์์
๋๋ค.
m๊ณผ n์ด ๋ชจ๋ 1์ธ ๊ฒฝ์ฐ๋ ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง์ง ์์ต๋๋ค.
๋ฌผ์ ์ ๊ธด ์ง์ญ์ 0๊ฐ ์ด์ 10๊ฐ ์ดํ์
๋๋ค.
์ง๊ณผ ํ๊ต๊ฐ ๋ฌผ์ ์ ๊ธด ๊ฒฝ์ฐ๋ ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง์ง ์์ต๋๋ค.
๐ ์
์ถ๋ ฅ
m n puddles return
4 3 [[2, 2]] 4
"""
# m X n (๊ฐ๋ก X ์ธ๋ก) (์ด X ํ)
def solution(m, n, puddles):
dp = [[0] * (m + 1) for _ in range(n + 1)]
# ์ง์ด ์๋ ๊ณณ์ ์ขํ๋ (1, 1)
dp[1][1] = 1
# ๋ฌผ์ด ์ ๊ธด ์ง์ญ์ ์ขํ๋ฅผ ๋ด์ 2์ฐจ์ ๋ฐฐ์ด puddles
for i in range(len(puddles)) :
# ์ด ํ
a, b = puddles[i]
# ํ ์ด๋ก ๋ฃ๊ธฐ
dp[b][a] = -1
for i in range(1, n+1) :
for j in range(1, m+1) :
# ์ถ๋ฐ์ง
if (i == 1 and j == 1) :
continue
# ์
๋ฉ์ด๋?
elif dp[i][j] == -1 :
dp[i][j] = 0
continue
# ์ค๋ฅธ์ชฝ๊ณผ ์๋์ชฝ์ผ๋ก๋ง ์์ง์ฌ์ผ๋จ
# So ์ผ์ชฝ๊ณผ ์์์ ์ค๋๊ฒ๋ค์ ๋ํจ
dp[i][j] += (dp[i - 1][j] + dp[i][j - 1]) % 1000000007
# ํ๊ต๊ฐ ์๋ ๊ณณ์ ์ขํ๋ (m, n)
# ํ ์ด๋ก ๋ฐ์์ผ๋จ
return dp[n][m]
์ ํ์ฑ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
ํ ์คํธ 1 ใ ํต๊ณผ (0.01ms, 10.4MB) ํ ์คํธ 2 ใ ํต๊ณผ (0.02ms, 10.2MB) ํ ์คํธ 3 ใ ํต๊ณผ (0.02ms, 10.3MB) ํ ์คํธ 4 ใ ํต๊ณผ (0.03ms, 10.2MB) ํ ์คํธ 5 ใ ํต๊ณผ (0.05ms, 10.3MB) ํ ์คํธ 6 ใ ํต๊ณผ (0.07ms, 10.2MB) ํ ์คํธ 7 ใ ํต๊ณผ (0.08ms, 10.2MB) ํ ์คํธ 8 ใ ํต๊ณผ (0.13ms, 10.2MB) ํ ์คํธ 9 ใ ํต๊ณผ (0.04ms, 10.2MB) ํ ์คํธ 10 ใ ํต๊ณผ (0.03ms, 10.4MB) ํจ์จ์ฑ ํ ์คํธ ํ ์คํธ 1 ใ ํต๊ณผ (2.56ms, 10.3MB) ํ ์คํธ 2 ใ ํต๊ณผ (1.38ms, 10.2MB) ํ ์คํธ 3 ใ ํต๊ณผ (1.28ms, 10.2MB) ํ ์คํธ 4 ใ ํต๊ณผ (1.67ms, 10.2MB) ํ ์คํธ 5 ใ ํต๊ณผ (1.43ms, 10.4MB) ํ ์คํธ 6 ใ ํต๊ณผ (2.31ms, 10.3MB) ํ ์คํธ 7 ใ ํต๊ณผ (1.11ms, 10.2MB) ํ ์คํธ 8 ใ ํต๊ณผ (1.67ms, 10.4MB) ํ ์คํธ 9 ใ ํต๊ณผ (1.95ms, 10.3MB) ํ ์คํธ 10 ใ ํต๊ณผ (2.05ms, 10.4MB)
3. ํด์ค
- DP ๋ฐฐ์ด ๋ง๋ ๋ค
- ์ฒซ ์์์ 1,1 ์ด๋๊น 1๋ก ํด์ค๋ค
- ์ ๋ฉ์ด๋ -1๋ก ํด์ค๋ค
- ํ์ฌ ์์น๊ฐ ์ ๋ฉ์ด๋ผ๋ฉด ๊ฐ์ ์ํฅ์ ์ฃผ๋๊น 0์ผ๋ก ๋ฐ๊พผ๋ค
- ์ค๋ฅธ์ชฝ๊ณผ ์๋์ชฝ์ผ๋ก๋ง ์์ง์ด๋๊น DP ๋ฐฐ์ด์์ ์ผ์ชฝ, ์์ชฝ์์ ์ค๋ ๊ฐ๋ค์ ๋ํด์ค๋ค
This post is licensed under CC BY 4.0 by the author.