본문 바로가기
Algorithm(BOJ, Python)/Dynamic Programing

[백준_17271] 리그 오브 레전설 (Small) python

by kurooru 2022. 6. 22.

dp를 구현함에 있어서 무지성 세보기는 참 좋은 방법인 것 같다.

다만, 내가 구하는 칸이 어디서로부터 오는지 그 근본을 잘 확인해야 한다.

dp = [
[0] * 101 for _ in range(10001)
]

for i in range(1, 10001):
 dp[i][1] = (2 ** i)

for i in range(1, 10001):
 for j in range(1, 101):
  if i == j:
   dp[i][j] = 2
  elif i < j:
   dp[i][j] = 1

for i in range(3, 10001):
 for j in range(2, 101):
  if i > j:
   dp[i][j] = (dp[i-j][j] + dp[i-1][j])

n, m = map(int, input().split())

print(dp[n][m] % 1000000007)