[백준/JAVA] 2293번: 동전 1
🔺 문제
2293번: 동전 1
첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.
www.acmicpc.net
🔺 코드
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
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int n = Integer.parseInt(st.nextToken()); // 동전 종류
int k = Integer.parseInt(st.nextToken()); // 목표가
int[] coin = new int[n + 1]; // 동전 배열
int[] DP = new int[k + 1]; // DP[i] = j : i원 만드는 경우의 수 j
DP[0] = 1;
for(int i = 1 ; i <= n ; i++) {
coin[i] = Integer.parseInt(br.readLine());
for(int j = coin[i] ; j <= k ; j++) {
DP[j] += DP[j - coin[i]];
}
}
System.out.println(DP[k]);
br.close();
}
}
|
cs |
✅ 해결 아이디어
✔ DP
-DP[ i ] = j
⇒ j는 i원 만드는 데 가능한 경우의 수
🔺 다른 풀이들
- 감격적인 과정 설명... (동전 가지 수 늘려가면서 메모이제이션... 기억... 복습용)
[백준 2293번] 동전 1 (java)
2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 합이 k원
lotuslee.tistory.com
[백준] 2293번 : 동전 1 – JAVA [자바]
https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연
propercoding.tistory.com
- 점화식 세우는 과정 !!!!
백준 2293 동전 1 JAVA
n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사
velog.io
💬 느낀 점
아직도 점화식을 못 세우는 사람이 있다?!
혼자서도 잘 풀고 싶,,,
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V | 7/12 |
(참고)
[백준 2293 : JAVA] 동전1 / Dynamic Programming
개요 dp 문제는 이전의 구한 값을 통해 현재 원하는 값을 도출하는 방식이다. 이 문제에서는 중복만 제거한다면 풀이가 가능하다. 또한, 만들고 싶은 금액을 기준으로 한다. 문제 n가지 종류의 동
dragon-h.tistory.com