Study/Problem Solving
[BOJ_15489] 파스칼의 삼각형
monitor
2024. 2. 25. 08:29
설명
기본 DP문제로 워밍업 용으로 좋은 문제 인 것 같습니다. 문제에서 주어진 파스칼의 삼각형 공식을 사용했으며 (오른쪽 위 왼쪽 위를 더하면 아래의 조합 경우의 수가 나옴) 이때, 문제에서 주어진 삼각형의 경우의 수만큼 더했습니다.
코드
package BOJ.Dynamic_Programming;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BOJ_15489 {
public static void main(String[] args) throws Exception{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String[] str = in.readLine().split(" ");
int R = Integer.parseInt(str[0]) - 1;
int C = Integer.parseInt(str[1]) - 1;
int W = Integer.parseInt(str[2]);
int[][] dp = new int[31][31];
for (int i = 0; i < 31; i++){
for (int j = 0; j <= i; j++){
if(j == 0 || i == j){
dp[i][j] = 1;
}
if(dp[i][j] == 0) {
dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
}
}
}
int ans = 0;
for (int i = R; i < R + W; i++){
for (int j = C; j <= C + (i - R); j++){
ans += dp[i][j];
}
}
System.out.println(ans);
}
}
15489번: 파스칼 삼각형
첫째 줄에 양의 정수 R, C, W가 공백을 한 칸씩 두고 차례로 주어진다. (단, 2 ≤ R+W ≤ 30, 2 ≤ C+W ≤ 30, 1 ≤ W ≤ 29, C ≤ R)
www.acmicpc.net