코딩테스트/Java

[JAVA] 백준 동전1

SK_MOUSE 2021. 11. 18. 12:23
반응형

동적프로그래밍(DP) 문제이다.

 

  • dp[i] = dp[i] + dp[i - coin]이다.
    • 문제와 같은 입력이 주어졌을 때
      1. 1원 짜리 동전으로 1원 부터 10원까지 만들 수 있는 가짓수를 구한다.
      2. 2원 짜리 동전으로 2원 부터 10원까지 만들 수 있는 가짓수를 구한다. (1원으로 구한 값을 이용하여 구한다.)
      3. 5원 짜리 동전으로 5원 부터 10원까지 만들 수 있는 가짓수를 구한다. (2원으로 구한 값을 이용하여 구한다.)

 https://dragon-h.tistory.com/10

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    static int n,k;
    static int[] coin;
    static int[] memo;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        n= Integer.parseInt(st.nextToken());
        k= Integer.parseInt(st.nextToken());
        coin= new int[n];
        memo = new int[k+1];
        for(int i =0; i<n; i++) coin[i] = Integer.parseInt(br.readLine());

        for(int i=0; i<n; i++){
            System.out.println("i:" + i);

            for (int j = coin[i]; j <= k; j++) {
                memo[j] += memo[j-coin[i]];
                System.out.println(coin[i]);
            }
        }
    }

}
반응형

'코딩테스트 > Java' 카테고리의 다른 글

[JAVA] 백준 돌다리  (0) 2021.12.21
[JAVA] 백준 양  (0) 2021.12.14
[JAVA] 프로그래머스 폰켓몬  (0) 2021.11.05
[JAVA] 프로그래머스 소수 만들기  (0) 2021.11.05
[JAVA] 프로그래머스 음양 더하기  (0) 2021.10.27