아파트에 거주하는 조건이 있다.
"a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다" 는 계약 조항을 꼭 지키고 들어와야 한다.
계약조건에 따라 모두 거주한다면, k층 n호에 사는 사람의 수를 출력하시오.
단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.
(1 ≤ k, n ≤ 14)
입력:
첫줄에 테스트 케이스 개수 T, 둘째줄 k(층수), 세째줄 n(호수), 다음줄 부터 k, n 반복
출력:
각 테스트 케이스에 대한 거주민 수 출력
문제풀이+해설
아파트 호수별 인원수를 도식화 해보면 아래와 같다.
층 1호 2호 3호 4호 ..
-------------------------
2 1 4 10 20
1 1 3 6 10 ..
0 1 2 3 4 ..
-------------------------
규칙을 보면( 예) 2층 3호 라면)
층(2층)의 호수(3호)의 인원수(10명)는 아래층(1층) 호수(3호)의 인원수(6명) 과 같은층 앞호(2호) 인원수(4명)을 더한 값과 같다.
층/호가 배열로 되어 있다면 아래의 규칙이 성립니다.
k층 n호의 인원수 = 배열[k][n] + 배열[k][n-1]
0층 부터 제시된 해당 층까지 해당층의 호별 인원수가 계산된 배열을 계산해 주면 된다.
바로 아래층의 인원수 데이터만 있으면 되므로, 한개층의 배열만 있으면 된다.
유의할 것은 0층의 경우에는 위의 규칙을 따르지 않고, 별도 계산없이, 호수가 인원수이므로, if 문으로 별도 처리해 줘야 한다.