-
[2775번] 부녀회장이 될테야 -Java알고리즘 연습 2021. 11. 8. 21:03
https://www.acmicpc.net/problem/2775
2775번: 부녀회장이 될테야
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
www.acmicpc.net
1. 배운점
- 직접 손으로 표현하기: 표를 직접 그려보면서 규칙성을 찾아보려고 노력한다.
- 규칙성 찾기 : A 층 B호 거주민 = (A-1 층 B호 거주민 + A층 B-1호 거주민)
2. 개선할 점
- 머리로 그려지지 않을 때는 직접 손으로 상황을 표현해본다.
3. 궁금한 점
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { // import java.io.BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // Test case, 층, 호수 받기 int testCase = Integer.parseInt(br.readLine()); // Test case만큼 거주민 수 출력하기 for (int i = 0; i < testCase; i++) { // 층, 호수 받기 int floorNum = Integer.parseInt(br.readLine()); int roomNum = Integer.parseInt(br.readLine()); // 거주민 수 출력 System.out.println(calcResidentNumber(floorNum, roomNum)); } } static int calcResidentNumber(int floorNum, int roomNum) { // 최대 수만큼 배열 생성 int [][] residents = new int [15][15]; // 값이 고정인 호수 초기화 for(int i = 0; i < 15; i++) { // 0층 호수 값 초기화 residents[0][i] = i; // i층 1호 값 초기화 residents[i][1] = 1; } // 규칙성 발견하여 호수 거주민 값 구하기 for (int i = 1; i < 15; i++) { for(int j = 2; j < 15; j++) { residents[i][j] = residents[i-1][j] + residents[i][j-1]; } } return residents[floorNum][roomNum]; } }
'알고리즘 연습' 카테고리의 다른 글
[4153번] 직각삼각형 - Java (0) 2021.11.09 [3009번] 네 번째 점 - Java (0) 2021.11.09 [10250번] ACM 호텔 - Java (0) 2021.11.08 [15596] 정수 N개의 합 Java (0) 2021.11.07 [4673] 셀프 넘버 - Java (0) 2021.11.07