코딩테스트/백준
[Dev-Ping9] 백준 2775번 - 부녀회장이 될테야 (Java)
DevPing9_
2021. 11. 16. 16:05
... 다 작성하고 저장을 안했다.... 😥

# 문제 설명
- k>=1, n<=14 인줄 알고 dp로는 절대 풀면 안되겠구나 라는 생각을 하곤, k와 n으로만 이루어진 수학적인 식이 있을까 한참 고민했었다... 🙄 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이걸 3시간 잡고있던 내가 레전드...
- 결론은 k와 n의 크기가 크지 않고, 전 단계의 부분계산의 결과가 다음단계의 계산결과에 쓰인다는 것이 문제 자체에 정의되어있기 때문에 쉽게 DP로 접근하면 되겠구나라고 생각 할 수 있다.
- 손으로 몇번만 규칙을 따라가면, 매우 다양한 점화식을 찾을 수 있다.
# 사용할 점화식
- dp[i][j] : i층 j호의 거주인원
- dp[i][j] = dp[i-1][j] + dp[i][j-1]
# 구현 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
static int[][] arr= new int[15][15];
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int times = Integer.parseInt(br.readLine());
int k,n;
for(int i=0;i<15;i++){
arr[i][1] = 1;
arr[0][i] = i;
}
for(int i=1;i<15;i++){
for(int j=2;j<15;j++){
arr[i][j] = arr[i][j-1]+arr[i-1][j];
}
}
for(int i=0; i<times; i++){
k = Integer.parseInt(br.readLine());
n = Integer.parseInt(br.readLine());
System.out.println(arr[k][n]);
}
}
}
728x90