티스토리 뷰

728x90

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

 

16395번: 파스칼의 삼각형

파스칼의 삼각형은 이항계수를 삼각형 형태로 배열한 것인데, 블레즈 파스칼(1623-1662)을 따라 이름 붙여졌다. 단순한 형태로, 파스칼의 삼각형은 다음과 같은 방법으로 만들 수 있다. N번째 행

www.acmicpc.net

 

파스칼의 삼각형을 배열로 표현하면

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

.... 이런 식으로 진행됩니다.

따라서 i - 1, j - 1 인덱스에 있는 value와 i - 1, j 인덱스에 있는 값을 더해서 i, j에다 저장하면 파스칼의 삼각형이 만들어집니다.

 

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
import java.util.*;
 
public class Main {
    static int dp[][] = new int[31][31];
 
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int K = sc.nextInt();
        sc.close();
 
        int ans = paskal(N, K);
 
        System.out.println(ans);
    }
 
    private static int paskal(int n, int k) {
        dp[1][1= 1;
        for (int i = 2; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                if (j == 1 || j == i) {
                    dp[i][j] = 1;
                } else {
                    dp[i][j] = dp[i - 1][j - 1+ dp[i - 1][j];
                }
            }
        }
 
        return dp[n][k];
    }
}
cs

 

'코딩 > 자바 백준' 카테고리의 다른 글

백준 1913 달팽이 (JAVA)  (0) 2021.09.01
백준 2947 나무 조각 (JAVA)  (0) 2021.09.01
백준 17478 재귀함수가 뭔가요? (JAVA)  (0) 2021.08.31
백준 11652 카드 (JAVA)  (0) 2021.08.30
백준 10816 숫자 카드 2 (JAVA)  (0) 2021.08.26
댓글