티스토리 뷰
문제
n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. (각각의 동전은 몇 개라도 사용할 수 있다.)
입력
첫째줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다.
출력
첫째 줄에 경우의 수를 출력한다. 경우의 수는 2^31보다 작다.
예제 입력
3 10 1 2 5
예제 출력
10
코드
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 32 33 34 35 36 37 38 39 40 41 | package dp; import java.util.Arrays; import java.util.Scanner; /** * https://www.acmicpc.net/problem/2293 * 동전 1 * @author minjung * */ public class baekjoon_2293 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // n가지 종류 int k = sc.nextInt(); // 합이 k원 int[] coin = new int[n+1]; for ( int i = 1; i <= n; i++ ){ coin[i] = sc.nextInt(); } Arrays.sort(coin); int[] dp = new int[k+1]; dp[0] = 1; for ( int i = 1; i <= n; i++ ){ for ( int j = coin[i]; j <= k; j++ ){ dp[j] += dp[j - coin[i]]; } } System.out.println(dp[k]); } } | cs |
'Algorithm > Baekjoon Online Judge' 카테고리의 다른 글
[정렬] BOJ_11650 좌표 정렬하기 (0) | 2017.04.24 |
---|---|
[정렬] BOJ_1431 시리얼 번호 (0) | 2017.04.24 |
[다이나믹 프로그래밍] BOJ_3943 헤일스톤 수열 (0) | 2017.04.20 |
[다이나믹 프로그래밍] BOJ_2156 포도주 시식 (0) | 2017.04.20 |
[다이나믹 프로그래밍] BOJ_2225 합분해 (0) | 2017.04.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- servlet
- sort
- order by
- BFS
- 안드로이드 스튜디오
- list
- onPostExecute
- Spring
- INSERT
- 이클립스
- 예외처리
- boj
- indexOf
- table
- jsp
- REDIRECT
- maven
- DFS
- mybatis
- DP
- Baekjoon Online Judege
- 자바
- RequestMapping
- onBackPressed
- controller
- 안드로이드 비콘
- java
- restfb
- AlertDialog.Builder
- algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함