다이나믹프로그래밍

t = int(input()) stairs = [0] d = [0 for _ in range(t+1)] for _ in range(t): stairs.append(int(input())) for i in range(1, t+1): if i
n = int(input()) dp = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] # 두 자리 수일 땐 10 9 8 7 6 5 4 3 2 1 더했음 # 세 자리 수일 땐 55 45 36 28 21 15 10 6 3 1 # 네 자리 수일 땐 220 ... # 패턴이 있다. 기존 dp[i-1]을 빼주면 된다. newdp = [0 for i in range(10)] for i in range(3, n+1): for j in range(10): if j == 0: newdp[j] = sum(dp) else: newdp[j] = newdp[j-1] - dp[j-1] dp = newdp[:] # 배열의 깊은 복사 주의하기 ^^ if n == 1: print(10%10007) else: print(su..
린구
'다이나믹프로그래밍' 태그의 글 목록