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
- 완전탐색
- 시뮬레이션
- java
- spring
- COSPROJAVA1급
- YBMCOS
- dp
- PS
- 백준코딩테스트
- QUICKSTARTGUIDE
- 알고리즘
- 다이나믹프로그래밍
- 자바PS
- COSPRO
- 네트워크플로우
- GatherTown
- 다익스트라
- 엘라스틱서치
- 우선순위큐
- 게더타운시작
- 백준
- deque
- 구현
- 취득후기
- 세그먼트트리
- 01BFS
- BFS
- 이젠 골드구현도 어렵네..
- DFS
- 재귀함수
Archives
- Today
- Total
공부공간
BOJ - 2294 ) 동전 2 본문

BOJ - 2293) 동전 1의 변형 문제이다. 동전 1의 경우, 주어진 금액을 나타내는 최대의 경우의 수를 출력하는 반면 동전 2의 경우 최소 경우의 수로 해당 금액을 나타내는 문제이다. 주의하여 생각해야할 점은 동전 1과 큰 차이가 없다.
1. 동전 1과 같이, 동전의 종류 별 경우의 수를 갱신한다.
2. 경우의 수를 갱신할 때, 배열 d 의 인덱스 값보다 적은 가치의 동전만을 생각한다.
3. 기존의 배열 d의 값과, 도출된 d 의 값을 비교하여, 적은 값을 선택한다.
4. 주어진 k 값이 도출되지 않을 경우(값이 갱신되지 않았을 경우) -1 을 출력한다.

d[j] 의 값을 갱신할 때마다 기존의 d[j] 의 값과 배열에서 동전의 가치만큼 뺀 뒤 1을 더해준 값과 비교하여 더 작은 값을 갱신하고, 값이 갱신이 되지 않았다면 -1 을 return 한다.

ex) i = 1 의 경우, 출력 배열인 d 의 값은 등차가 1인 수열 형태를 띄게 된다. (cost[1] = 1)
i = 2, j= 5 의 경우, min (d[5], d[5 - 5] + 1) 에 따라 d[5] 의 값이 1로 갱신된다.

'알고리즘 > Dynamic Programming' 카테고리의 다른 글
BOJ - 1890 ) 점프 (0) | 2020.01.30 |
---|---|
BOJ - 11048 ) 이동하기 (0) | 2020.01.30 |
BOJ - 2293) 동전 1 (0) | 2020.01.30 |
BOJ - 1699) 제곱수의 합 (0) | 2020.01.29 |
BOJ - 11052) 카드 구매하기 (0) | 2020.01.29 |