본문 바로가기
Java/AlgorithmPS

백준) 부녀회장이 될테야(2775번)

by NH_club 2023. 9. 18.
 

2775번: 부녀회장이 될테야

첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다

www.acmicpc.net

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

public class Main {

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

        for (int i = 1; i <= 14; i++) {
            arr[0][i] = i;
        }


        for (int i = 1; i <= 14; i++) {
            for (int j = 1; j <= 14; j++) {
                arr[i][j] = arr[i][j-1] + arr[i-1][j];
            }
        }

        for (int i = 0; i < t; i++) {
            int k = Integer.parseInt(br.readLine());
            int n = Integer.parseInt(br.readLine());
            System.out.println(arr[k][n]);
        }
    }
}

깨달은 점:

(1 ≤ k, n ≤ 14) -> (1 ≤ k) and (n ≤ 14) 가 아니라 (1 ≤ k,n) and (k,n ≤ 14)임. 문제 의도에 지금보다 더 신경써야 할 듯.

14층, 14호라는 조건이 있었지만 배열을 15, 15로 생성한 것은 0호는 문제에서 사용되지 않으니 더 직관적으로 코드를 작성할 수 있도록 0호를 넣었다.

문제 해결하는데 방해가 되지 않는다면 굳이 배열을 크기에 맞춰 생성할 필요는 없다.

앞으로는 System.out.pringln 보다는 StringBuilder로 출력하는 것을 습관화 하자.

DP에선 점화식을 정확하게 도출하는 것이 관건. DP 알고리즘 더 공부하기