-
[Dev-Ping9] 백준 2775번 - 부녀회장이 될테야 (Java)코딩테스트/백준 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'코딩테스트 > 백준' 카테고리의 다른 글
[Dev-Ping9] 백준 1011번 - Fly me to the Alpha Centauri (Java) (0) 2021.11.17 [Dev-Ping9] 백준 10757번 - 큰 수 A+B (Java) (0) 2021.11.16 [Dev-Ping9] 백준 2869번 - 달팽이는 올라가고 싶다 (Java) (0) 2021.11.16 [Dev-Ping9] 백준 1193번 - 분수찾기 (Java) (0) 2021.11.16 [Dev-Ping9] 백준 13398번 : 연속합 2 (Java) (0) 2021.11.08