1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.util.*;
class Solution {
public int solution(int n, int[] money) {
int answer = 0;
int[] arr = new int[n+1];
Arrays.sort(money);
arr[0] = 1;
for(int m : money){
for(int i=m;i<=n;i++){
arr[i] += arr[i-m];
}
}
answer = arr[n];
return answer;
}
}
|
cs |
n원을 만드는 방법의 수는 기존 n원을 만드는 방법의 수 + (n-money)원을 만드는 수이다.
초기 1 0 0 0 0 0
n = 1 1 1 1 1 1 1
n = 2 1 1 2 2 3 3
n = 5 1 1 2 2 3 4
0열은 자기 자신의 money만을 사용할 때를 위해 1로 설정한 것이다.
참고 사이트 : https://tosuccess.tistory.com/57
'Programmers > Level3' 카테고리의 다른 글
섬 연결하기 (0) | 2021.09.14 |
---|---|
멀리 뛰기 (0) | 2021.09.14 |
풍선 터트리기 (0) | 2021.09.13 |
[1차] 추석 트래픽 (0) | 2021.09.08 |
길 찾기 게임 (0) | 2021.09.07 |