[백준] 이항 계수 2

Hyunwoo Park·2021년 5월 12일
0

알고리즘

목록 보기
19/19

이항 계수를 10007로 나눈 값을 출력하는 문제였다.
파스칼의 삼각형이란 개념을 활용하여 문제를 풀었다.

파스칼의 삼각형을 점화식으로 적으면
dp[i][j] = dp[i-1][j-1] + dp[i-1][j]가 된다.

K는 0부터 시작하므로, dp[0][0]를 1로 적어주면 되고,
각 행의 첫 요소와 마지막 요소의 값은 1로 설정해주면 된다.

dp = [[0 for i in range(N + 1)] for j in range(N + 1)]
dp[0][0] = 1
dp[1][0] = 1
dp[1][1] = 1

for i in range(2, N + 1):
    for j in range(N + 1):

        if j == 0:
            dp[i][j] = 1

        elif j == N:
            dp[i][j] = 1

        else:
            dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]

print(dp[N][K])
profile
만나서 반갑습니다.

0개의 댓글