코딩테스트연습/백준
[백준 - JAVA] 2775번 부녀회장이 될테야
:)jun
2021. 12. 18. 21:46
https://www.acmicpc.net/problem/2775
2775번: 부녀회장이 될테야
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
www.acmicpc.net
// 기본값 0층 i호에 있을때 i명이 있다고 먼저 초깃값 지정해준 뒤에.
// 재귀함수로 계속 역으로 불러오면 되겠다.
//프로덕션코드
mport java.util.Scanner;
public class Quiz2775 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numberOfTestCase = scanner.nextInt();
int[] numberOfPeople = new int[numberOfTestCase];
for (int i = 0; i < numberOfTestCase; i++) {
int k = scanner.nextInt();
int n = scanner.nextInt();
numberOfPeople[i] = getNumberOfPeople(k, n);
}
for (int i = 0; i < numberOfPeople.length; i++) {
System.out.println(numberOfPeople[i]);
}
}
static int getNumberOfPeople(int k, int n) {
if (k == 0) {
return n;
}
int sum = 0;
for (int i = 0; i <= n; i++) {
sum += getNumberOfPeople(k - 1, i);
}
return sum;
}
}
// 굿! 리팩토링 프린트부분만 묶고 끝내자
import java.util.Scanner;
public class Quiz2775 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numberOfTestCase = scanner.nextInt();
int[] numberOfPeople = new int[numberOfTestCase];
for (int i = 0; i < numberOfTestCase; i++) {
int k = scanner.nextInt();
int n = scanner.nextInt();
numberOfPeople[i] = getNumberOfPeople(k, n);
}
print(numberOfPeople);
}
private static void print(int[] numberOfPeople) {
for (int i = 0; i < numberOfPeople.length; i++) {
System.out.println(numberOfPeople[i]);
}
}
static int getNumberOfPeople(int k, int n) {
if (k == 0) {
return n;
}
int sum = 0;
for (int i = 0; i <= n; i++) {
sum += getNumberOfPeople(k - 1, i);
}
return sum;
}
}
// 성공!
//(추가) 사실 다 안 더해줘도 되는구나? (k,n) = (k,n-1)+(k-1,n) 이 식이 계산도 적게하고 깔끔하네!
import java.util.Scanner;
public class Quiz2775 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numberOfTestCase = scanner.nextInt();
int[] numberOfPeople = new int[numberOfTestCase];
for (int i = 0; i < numberOfTestCase; i++) {
int k = scanner.nextInt();
int n = scanner.nextInt();
numberOfPeople[i] = getNumberOfPeople(k, n);
}
print(numberOfPeople);
}
private static void print(int[] numberOfPeople) {
for (int i = 0; i < numberOfPeople.length; i++) {
System.out.println(numberOfPeople[i]);
}
}
static int getNumberOfPeople(int k, int n) {
if (k == 0) {
return n;
}
if (n == 0) {
return 0;
}
return getNumberOfPeople(k, n - 1) + getNumberOfPeople(k - 1, n);
}
}
//성공! 대신 n==0 일때 조건까지 추가해주면 된다.