문제 풀이(60)

Youngseon Kim·2023년 12월 4일

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

import java.util.*;
import java.io.*;

class Main {

    static int n,k;
    static int[][] A;

    public static void main(String[] args) throws IOException {
        
        A = new int[30 + 1][30 + 1];

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
       
        StringTokenizer st = new StringTokenizer(br.readLine());

        n = Integer.parseInt(st.nextToken());

        k = Integer.parseInt(st.nextToken());

        A[0][0] = 1;
        A[1][0] = 1;
        A[1][1] = 1;

        int answer = 0;

        for (int i = 2; i < A.length; i++) {
            
            for (int j = 0; j < A[i].length; j++) {
                

                if (i == j) {
                    
                    A[i][j] = A[i][j] + A[i - 1][j - 1];

                }else if (j == 0) {
                    
                    A[i][j] = A[i][j] + A[i - 1][j];

                }else{

                    int left =  A[i - 1][j - 1];
                    int right = A[i - 1][j];

                    A[i][j] = A[i][j] + left + right;

                }                
            }

        }


        System.out.println(A[n-1][k-1]);
    }
}

0개의 댓글