Coding - Algo/Java
[백준] 16395번:파스칼의 삼각형 (Java 자바)
jainn
2021. 8. 16. 18:58
728x90
문제
https://www.acmicpc.net/problem/16395
16395번: 파스칼의 삼각형
파스칼의 삼각형은 이항계수를 삼각형 형태로 배열한 것인데, 블레즈 파스칼(1623-1662)을 따라 이름 붙여졌다. 단순한 형태로, 파스칼의 삼각형은 다음과 같은 방법으로 만들 수 있다. N번째 행
www.acmicpc.net
풀이 및 소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Main {
static int n,k ;
static int[][] tri;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
k = Integer.parseInt(st.nextToken());
tri = new int[n+1][n+1];
for(int i=2;i<=n;i++) {
tri[i][1] = 1;
tri[i][i] = 1;
}
if(n == k || k == 1) {
System.out.println(1);
System.exit(0);
}
make_tri(3,2);
System.out.println(tri[n][k]);
}
//[i][j] = [i-1][j-1]+[i-1][j]
public static void make_tri(int x, int y) {
if(x==n&& y==k+1) {
return;
}
if(x==y) {
make_tri(x+1, 2);
} else {
tri[x][y] = tri[x-1][y-1]+tri[x-1][y];
make_tri(x, y+1);
}
}
}
반응형