일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- algorithmTest
- 자바
- 돈
- 프로그래밍언어
- 책을알려주는남자
- algorithmtraining
- 화장품
- 지혜를가진흑곰
- 서평
- 알고리즘 공부
- 채권
- Java
- 자바스크립트
- 독서
- 알고리즘공부
- 프로그래머스 알고리즘 공부
- 경제
- 독후감
- 투자
- 주식
- 성분
- 재테크
- 다독
- algorithmStudy
- C++
- JavaScript
- 백준알고리즘
- C
- 알고리즘트레이닝
- 책알남
Archives
- Today
- Total
탁월함은 어떻게 나오는가?
[Algorithm] 욕심쟁이 알고리즘 동전 거슴름돈 문제풀이 [C++] 본문
[Snow-ball]프로그래밍(컴퓨터)/Algorithm Training
[Algorithm] 욕심쟁이 알고리즘 동전 거슴름돈 문제풀이 [C++]
Snow-ball 2022. 4. 17. 18:00반응형
[개념과 원리]
동전 거스름돈(coin change) 문제는 가게에서 고객에게 돌려줄 거스름돈이 있을 때 고객이 받을 동전의 개수를 최소로 하여 거스름돈을 돌려주는 방법을 찾는 문제로, 동전 문제 또는 거스름돈 문제라고 한다.
사용 가능한 동전은 500원, 100원, 50원, 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
|
#include <iostream>
using namespace std;
int main() {
int T; // 고객에게 돌려줄 거스름돈
cout << "돌려줘야하는 거스름돈 = ";
cin >> T;
int n; // 동전의 종류 갯수
cout << "동전의 종류 갯수 : ";
cin >> n;
int* COIN = new int[n]; // 동전의 액면가를 감소순으로 저장하고 있는 배열
int* X = new int[n]; // 거스름돈으로 돌려줄 i번째 동전의 개수
for (int i = 0; i < n; ++i) cin >> COIN[i];
for (int i = 0; i < n; ++i) {
X[i] = T / COIN[i];
T = T - COIN[i] * X[i];
cout << X[i] << " ";
}
delete[] COIN;
return 0;
}
|
cs |
반응형
'[Snow-ball]프로그래밍(컴퓨터) > Algorithm Training' 카테고리의 다른 글
[Algorithm] 프로그래머스 푸드 파이트 대회 (Java Script) (0) | 2022.11.08 |
---|---|
[Algorithm] 프로그래머스 햄버거 만들기 (0) | 2022.11.04 |
[백준알고리즘, BOJ] 2447번 별 찍기 - 10 [C++, JavaScript] (0) | 2022.03.23 |
[백준 알고리즘] 18870번 좌표 압축 [C++, javascript] (0) | 2022.03.14 |
[백준알고리즘] 10814번 나이순 정렬 [C++]을 안정 정렬(Stable Sort)로 풀어보자. (0) | 2022.03.09 |
Comments