DP_파스칼 삼각형

김재령·1일 전
0

알고리즘

목록 보기
11/11

https://www.acmicpc.net/problem/1010

💡 파스칼 삼각형💡

조합을 계산할 수 있는 삼각형 형태의 배열
메모이제이션 없이도 빠르게 조합을 계산 가능 ✅

             1C0   1C1        ← row 1
           2C0   2C1   2C2      ← row 2
       3C0   3C1   3C2   3C3    ← row 3
3C2=2C1+2C2{}_{3}C_{2}={}_{2}C_{1} +{}_{2}C_{2}

상위 숫자 = 하위의 두 숫자의 합
자신의 바로 위 숫자 두 개를 더한 값

🎯 점화식

nCk=n1Ck1+n1Ck{}_{n}C_{k}={}_{n-1}C_{k-1} +{}_{n-1}C_{k}

파스칼의 삼각형 초기화

int[][] dp = new int[31][31]; // 0으로 초기화
for (int n = 0; n <= 30; n++) {
    dp[n][0] = dp[n][n] = 1; // 양끝 1로 초기화
    for (int k = 1; k < n; k++) {
        dp[n][k] = dp[n - 1][k - 1] + dp[n - 1][k];
    }
}
profile
with me

0개의 댓글