728x90
층과 호수를 저장할 2차원 배열 a를
받아온 T의 개수만큼 선언해줍니다.
그리고 그 아파트 층, 호수에 맞는 사람이 저장될
res 배열을 선언합니다.
아파트에 사는 인원의 규칙은
“a 층의 b 호에 살려면 자신의 아래(a-1)층에 1호부터 b 호까지 사람들의 수의 합만큼 사람들을 데려와 살아야한다”
인데 저는 이걸 0~2층 1~5호까지 숫자로 적어보니
a층의 i호수의 인원수는 a-1층 i호수와 a층 i-1호수의 인원 수를 합한 것과 같다
라는 규칙을 찾았습니다.
이전 호수와 이전 층이 없는 0층과 1호수 부분을 제외하고
위의 규칙을 재귀함수를 불러내는 식으로 정의해주시면 됩니다.
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 42 43 | import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); int[][] a= new int[T][2]; int []res = new int[T]; for(int i=0; i<T; i++) { a[i][0]=sc.nextInt(); a[i][1]=sc.nextInt(); } /*for (int[] is : a) { for (int i : is) { System.out.println(i); } }*/ for (int i=0; i<T; i++) { res[i]=per_num(a[i][0],a[i][1]); } for (int i : res) { System.out.println(i); } } private static int per_num(int floor, int ho) { int res=0; if(ho==1) res=1; else if(floor==0) res=ho; else res=per_num(floor-1,ho)+per_num(floor,ho-1); return res; } } |
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준][Java] 10250번 ACM 호텔 (0) | 2018.04.26 |
---|---|
[백준][Java] 1475번 방 번호 (0) | 2018.04.26 |
[백준][Java] 1193번 분수찾기 (0) | 2018.04.26 |
[백준][Java] 2292번 벌집 (0) | 2018.04.25 |
[백준][Java] 1302번 베스트셀러 (0) | 2018.04.21 |