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 | 31 | 
                            Tags
                            
                        
                          
                          - 간단 프로젝트
- e-HR
- 뷰 리액트 비교
- 백준
- 첫 리액트
- 자바
- 대문자
- 프로젝트 후기
- 오라클
- 트리
- URL입력
- 뷰 리액트
- 사내시스템
- react
- 백준알고리즘
- 뷰
- SBS 개발
- 경력직
- Vue.js
- IT시스템개발
- 면접
- 리액트
- CompositionAPI
- 1차면접
- 쟈스
- SBS 본사
- 첫 React
- 웹 개발 면접 질문
- MySQL
- 알고리즘
                            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 | 
 
          