Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 첫 React
- 경력직
- 자바
- 뷰 리액트
- 사내시스템
- 대문자
- MySQL
- CompositionAPI
- 리액트
- 알고리즘
- 쟈스
- 웹 개발 면접 질문
- 간단 프로젝트
- SBS 개발
- 뷰
- react
- e-HR
- Vue.js
- 오라클
- 1차면접
- URL입력
- 첫 리액트
- SBS 본사
- 뷰 리액트 비교
- IT시스템개발
- 면접
- 트리
- 프로젝트 후기
- 백준
- 백준알고리즘
Archives
- Today
- Total
리주의 프로그래밍 공부
[2293] 동전 1 본문
동적 프로그래밍 문제
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 첫줄에서 n과 k 입력 받기 위한 임시 String배열 line
String[] line = br.readLine().split(" ");
int n = Integer.parseInt(line[0]);
int k = Integer.parseInt(line[1]);
// 동전의 가치를 저장하기 위한 int배열 coin
int[] coin = new int[n];
// 동적프로그래밍을 사용하기위한 int배열 dp
int[] dp = new int[k + 1];
for (int i = 0; i < n; i++) {
coin[i] = Integer.parseInt(br.readLine());
}
// 초기값 설정
dp[0] = 1;
// 동전의 수만큼
for(int i=0; i<n; i++) {
// 1부터 k까지 coin[i]를 사용해서 만들 수 있는 가짓수 찾기
for(int j=1; j<=k; j++) {
if(j - coin[i] >= 0) {
dp[j] = dp[j] + dp[j - coin[i]];
}
}
}
System.out.println(dp[k]);
}
}
다른 사람의 아이디어를 참고해서 풀었다.
아직도 점화식 세우는데 익숙치않다.
'알고리즘 공부(백준)' 카테고리의 다른 글
[9663] N-Queen (0) | 2021.03.18 |
---|---|
[2606] 바이러스 (0) | 2021.01.13 |
[11286] 절댓값 힙 (0) | 2021.01.02 |
[11279] 최대 힙 (0) | 2021.01.02 |
[1920] 수 찾기 (0) | 2020.12.28 |