백준|2293번|동전 1

JSK·2022년 7월 31일
0

자바 PS풀이

목록 보기
40/51

문제설명
n가지 종류의 동전으로 k원을 만들수 있는 경우의 수를 구하는 문제입니다.

작동 순서
1. 동전 종류의 개수와 만드려는 금액을 입력받습니다.
2. 동전의 종류를 입력받습니다.
3. 금액별로 각 동전으로 만들 수 있는 방식의 수를 더해줍니다.(해당 금액-동전의 금액)을 만들수 있는 방법의 수를 더해줍니다.
4. 원하는 금액을 만들 수 있는 방법의 개수를 출력합니다.

소스코드

import java.io.*;
public class 백준_2293번_동전1 {
    public static void main(String[] args) throws IOException{
        BufferedReader  br = new BufferedReader(new InputStreamReader(System.in));
        String[] input = br.readLine().split(" ");
        int n=Integer.parseInt(input[0]), k=Integer.parseInt(input[1]);
        int[][] dp = new int[n][k+1];
        for(int i=0;i<n;i++){
            int coin=Integer.parseInt(br.readLine());
            dp[i][0]=1;
            for(int j=1;j<k+1;j++){
                if(j-coin>=0) dp[i][j]=dp[i][j-coin];
                if(i>0) {
                    dp[i][j]+=dp[i-1][j];
                }
            }
        }
        System.out.print(dp[n-1][k]);
    }
}

후기
문제를 푸는 것 보다 원리를 설명하는게 훨씬 더 어렵네요... 아직은 이해력이 많이 부족한 것 같습니다.

profile
학사지만 AI하고 싶어요...

0개의 댓글