gimmickbutreal

[백준/자바] 2775번 해설 - Java 본문

Algorithm/Java

[백준/자바] 2775번 해설 - Java

isshosng 2022. 3. 3. 20:00

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

 

2775번: 부녀회장이 될테야

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

www.acmicpc.net

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
// BufferedReader는 객체 생성시 생성자의 입력값으로 InputStreamReader의 객체가 필요함
// InputStream - byte / InputStreamReader - character / BufferedReader - String
// System.in은 화면으로부터 정수형, 소수형과 같은 데이터 타입을 byte 단위로 읽음. InputStream 타입으로 선언
// System.out은 PrintStream 타입으로 선언되어 있는데 Exception을 안전하게 처리한 method로만 구성되어 있음
public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String str = br.readLine();
 
        int T = Integer.parseInt(str); // 테스트 진행 수
        int [][] apt = new int[15][15]; 
        // System.out.println("apt = " + Arrays.toString(apart));
 
        for (int i = 0 ; i < 15 ; i++) {
            apt[i][1= 1;
            apt[0][i] = i;
        }
 
        for (int k = 1 ; k < 15 ; k++) { // 1층부터 14층
            for (int n = 2 ; n < 15 ; n++) { // 2호부터 14호까지
                apt[k][n] = apt[k][n-1+ apt[k-1][n];
            }
        }
 
        for (int i = 0 ; i < T; i++) {
 
            int K = Integer.parseInt(str); // 층수
            int N = Integer.parseInt(str); // 호수
 
            bw.write(apt[K][N] + "\n");
        }
    }
}
 
cs