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
- 스택
- 브루트포스
- 백준
- 다이나믹 프로그래밍
- 시뮬레이션
- C++
- 삼성 기출
- 구현
- sw expert academy
- 소수
- hackerrank
- 맛집
- Algorithm
- 백트래킹
- PS
- 에라토스테네스의 체
- 해커랭크
- 잠실
- 알고리즘
- dfs
- koitp
- DP
- 삼성 SDS 대학생 알고리즘 특강
- dynamic programming
- 동적 계획법
- 그리디
- SWEA
- BOJ
- 완전탐색
- BFS
Archives
- Today
- Total
펭로그
[C++] 백준 BOJ 11047 동전 0 본문
문제링크 : https://noj.am/11047
최소의 동전 갯수로 주어진 금액을 때려맞추는 그리디한 문제이다.
주어진 동전도 이미 정렬되어있기 때문에 솔루션도 매우 간단하다.
큰 동전부터 차례대로 나누어서 값을 누적시키고 나머지 값들은 더 작은 단위의 동전으로 나눠서 또 누적시키면 쉽게 구할 수 있다.
혹시라도 중간에 모든 동전을 소진했을 경우 바로 탈출하기 위해 24번째 줄과 같이 total == 0일 경우 탈출하는 조건을 두었다.
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 | // BOJ_11047 동전 0 #include <iostream> using namespace std; int coins[11]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N, total; cin >> N >> total; for(int i = 0; i < N; i++) cin >> coins[i]; int result = 0; for(int i = 1; i <= N; i++){ result += total / coins[N-i]; total %= coins[N-i]; if(total == 0) break; } cout << result; return 0; } | cs |
'Study > PS(Algorithm)' 카테고리의 다른 글
[C++] 백준 BOJ 1107 리모컨 (0) | 2019.05.19 |
---|---|
[C++] 백준 BOJ 1986 체스 (0) | 2019.02.20 |
[C++] 백준 BOJ 2217 로프 (0) | 2019.01.30 |
[C++] 프로그래머스 코딩테스트 연습 - 완주하지 못한 선수 (0) | 2019.01.29 |
[C++] 프로그래머스 코딩테스트 연습 - 전화번호 목록 (0) | 2019.01.29 |
Comments