Skip to content

Commit 55bb118

Browse files
committed
DP
1 parent 2050cf3 commit 55bb118

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
2+
/* ************************************************************************** */
3+
/* */
4+
/* ::: ::: ::: */
5+
/* Problem Number: 2775 :+: :+: :+: */
6+
/* +:+ +:+ +:+ */
7+
/* By: thxogh1 <boj.kr/u/thxogh1> +#+ +#+ +#+ */
8+
/* +#+ +#+ +#+ */
9+
/* https://boj.kr/2775 #+# #+# #+# */
10+
/* Solved: 2025/04/07 07:56:18 by thxogh1 ### ### ##.kr */
11+
/* */
12+
/* ************************************************************************** */
13+
import java.io.BufferedReader;
14+
import java.io.InputStreamReader;
15+
import java.util.Arrays;
16+
17+
public class Main {
18+
19+
public static void main(String[] args) throws Exception {
20+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
21+
int tc = Integer.parseInt(br.readLine());
22+
23+
for (int t = 0; t < tc; t++) {
24+
int k = Integer.parseInt(br.readLine());
25+
int n = Integer.parseInt(br.readLine());
26+
27+
int[] map = new int[n + 1];
28+
int[] s = new int[n + 1];
29+
int sum = 0;
30+
for (int i = 1; i < n + 1; i++) {
31+
sum += i;
32+
map[i] = i;
33+
s[i] = sum;
34+
}
35+
36+
for (int i = 1; i < k + 1; i++) {
37+
sum = 0;
38+
for (int j = 1; j < n + 1; j++) {
39+
map[j] = s[j];
40+
sum += map[j];
41+
s[j] = sum;
42+
}
43+
}
44+
System.out.println(map[n]);
45+
}
46+
}
47+
}
48+
49+
// 1 6 21
50+
// 1 5 15
51+
// 1 4 10
52+
// 1 3 6
53+
// 1 2 3
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# 2775번: 부녀회장이 될테야 - <img src="https://static.solved.ac/tier_small/5.svg" style="height:20px" /> Bronze I
2+
3+
<!-- performance -->
4+
5+
<!-- 문제 제출 후 깃허브에 푸시를 했을 때 제출한 코드의 성능이 입력될 공간입니다.-->
6+
7+
<!-- end -->
8+
9+
## 문제
10+
11+
[문제 링크](https://boj.kr/2775)
12+
13+
14+
<p>평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.</p>
15+
16+
<p>이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다.</p>
17+
18+
<p>아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.</p>
19+
20+
21+
22+
## 입력
23+
24+
25+
<p>첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다</p>
26+
27+
28+
29+
## 출력
30+
31+
32+
<p>각각의 Test case에 대해서 해당 집에 거주민 수를 출력하라.</p>
33+
34+
35+
36+
## 소스코드
37+
38+
[소스코드 보기](Main.java)

0 commit comments

Comments
 (0)