녕의 학습 기록

백준_1010 다리 놓기 본문

Algorithm/Algorithm 문제

백준_1010 다리 놓기

kjyyjk 2024. 4. 1. 21:53

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BJ_1010_다리놓기 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int t = Integer.parseInt(br.readLine());

        int[][] d= new int[31][31];

        int i;
        for (i=1; i<31; i++) {
            d[i][0] = 1;
            d[i][1] = i;
            d[i][i] = 1;
        }

        int j;
        for (i=2; i<31; i++) {
            for (j=2; j<i+1; j++) {
                d[i][j] = d[i-1][j-1] + d[i-1][j];
            }
        }

        StringTokenizer st;
        StringBuilder sb = new StringBuilder();
        int n, m;
        for (i=0; i<t; i++) {
            st = new StringTokenizer(br.readLine(), " ");
            n = Integer.parseInt(st.nextToken());
            m = Integer.parseInt(st.nextToken());

            sb.append(d[m][n]).append('\n');
        }

        System.out.println(sb);
    }

}

 

 

1010번: 다리 놓기

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.

www.acmicpc.net