반응형
05-14 05:47
Today
Total
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
관리 메뉴

개발하는 고라니

[백준] 1010번 : 다리 놓기 본문

Programming/백준

[백준] 1010번 : 다리 놓기

조용한고라니 2021. 2. 6. 19:34
반응형
 

1010번: 다리 놓기

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.

www.acmicpc.net

[동적 프로그래밍 (메모제이션)]

특별한 방법이 사용되지는 않는 문제이다. 왼쪽의 사이트가 n개이고, 오른쪽의 사이트가 m개일 때 다리를 놓을 수 있는 경우의 수가 dp[n][m]이라면,

 

dp[1][1] = 1   dp[2][1] = 0   dp[3][1] = 0   dp[4][1] = 0

dp[1][2] = 2   dp[2][2] = 1   dp[3][2] = 0   dp[4][2] = 0

dp[1][3] = 3   dp[2][3] = 3   dp[3][3] = 1   dp[4][3] = 0

dp[1][4] = 4   dp[2][4] = 6   dp[3][4] = 4   dp[4][4] = 1

dp[1][5] = 5   dp[2][5] = 10 dp[3][5] = 10  dp[4][5] = 5

dp[1][6] = 6   dp[2][6] = 15 dp[3][6] = 20  dp[4][6] = 15

 

수의 규칙성이 드러난다.

 

dp[2][4]의 경우 dp[1][1] + dp[1][2] + dp[1][3]

dp[4][6]의 경우 dp[3][1] + dp[3][2] + dp[3][3] + dp[3][4] + dp[3][5]로 나타낼 수 있다.

# Code </>

public class Main {

    static int[][]dp;
    static void Dynamic(int n, int m){

        for(int i=1; i<=m; i++) dp[1][i] = i;

        for(int i=2; i<=n; i++)
            for(int j=1; j<=m; j++)
                for(int k=1; k<j; k++)
                    dp[i][j] += dp[i-1][k];

    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;

        int t = Integer.parseInt(br.readLine());

        for(int i=0; i<t; i++){
            st = new StringTokenizer(br.readLine());

            int n = Integer.parseInt(st.nextToken());
            int m = Integer.parseInt(st.nextToken());

            dp = new int[30][30];

            if(n != m) {

                Dynamic(n, m);
                System.out.println(dp[n][m]);
            }
            else
                System.out.println(1);
        }
    }
}
반응형

'Programming > 백준' 카테고리의 다른 글

[백준] 3055번 : 탈출  (0) 2021.02.08
[백준] 1162번 : 도로 포장  (0) 2021.02.08
[백준] 2294번 : 동전 2  (0) 2021.02.06
[백준] 3197번 : 백조의 호수  (0) 2021.02.05
[백준] 9466번 : 텀 프로젝트  (0) 2021.02.05
Comments