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
- 플러터 #flutter #restful #rest api
- flutter #firebase #플러터 #파이어베이스 #연동
- boj #baekjoon #c++
- baekjoon #boj #c++
- flutter #app #취준
- VS #비주얼스튜디오
- 백준 #boj
- 로컬저장소 #이름변경
- 비주얼스튜디오 #코드스니펫
- 인턴 #프론트엔드 #개발자 #프론트엔드개발자 #취준
- baekjoon #백준 #boj
- flutter #상태관리
- unity #2d-game #minigame #vscode
- firebase #파이어베이스
- flutter #플러터
- flutter #todolist
- boj #baekjoon
- 백준 #c++
- 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과
- 비주얼 스튜디오 #vs #visual studio
- flutter #git
- 백준
- git #unity #깃허브
- 백준 #boj #baekjoon
- unity #2d-game
- boj #c++
- flutter #플러터 #분석
- #유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정
- Flutter
- flutter #깃
Archives
- Today
- Total
cococo-coding
[C++] 5585번. 거스름돈 본문
그리디 알고리즘의 첫 문제를 풀어봤다.
문제 분석
그리디 알고리즘의 문제이다.
타로가 지불한 돈을 입력받아 1000엔에서 뺀 값(change)을 잔돈으로 치환하는 문제이다.
문제를 보면 '언제나 거스름돈 개수가 가장 적게 잔돈을 준다'라는 구문이 있다. 보통 그리디 알고리즘은 '가장 적게'나 '가장 많게' 이런 식으로 많이 나온다고 하던데 문제를 잘 살펴보면 쉽게 찾을 수 있다.
알고리즘 설계
잔돈(500, 100, 50, 10, 5, 1)들을 배열이나 벡터에 담아서 쭈루룩 훑는 방식이 편하다.
큰 순으로 담아야 잔돈 개수가 적어지므로, 500부터 벡터에 담았다.
change를 잔돈으로 나눈 몫-> 동전 개수
change를 잔돈으로 나눈 나머지-> 새로운 change
이 구문을 반복한다.
아래는 예제를 풀어본 그림이다.
코드
#include <iostream>
#include <vector>
using namespace std;
/*
1. 지불할 돈을 입력받음
2. 거스름돈이 가장 적게 잔돈을 만든다.
*/
int main() {
//1
int pay;
cin >> pay;
//2
int change = 1000 - pay;
vector <int> cointype = { 500, 100, 50, 10, 5, 1 };
int coin = 0; //동전개수
for(int i=0; i<6; i++) {
if (change==0) break;
coin+=change / cointype[i];
change=change% cointype[i];
}
cout << coin << '\n';
return 0;
}
느낀 점
그리디 알고리즘임을 인지하고 푼 문제는 이번이 처음이다.
보통 코딩테스트에서는 알고리즘(그리디, 탐색, 기초동적)만 잘 다져두면 기본적인 실력은 된다고 한다.
앞으로 각각 50문제씩 풀어보려고 한다.
'[BOJ] 코드 모음 > C++_알고리즘' 카테고리의 다른 글
[C++ 풀이] 11034. 캥거루 세마리2 (1) | 2024.02.01 |
---|---|
[C++ 풀이] 14659번. 한조서열정리하고옴ㅋㅋ (0) | 2024.02.01 |
[C++ 풀이] 2810번. 컵홀더 (1) | 2024.01.30 |
[C++ 풀이] 2864번. 5와 6의 차이 (0) | 2024.01.28 |
[C++] 10162번. 전자레인지 (1) | 2024.01.28 |