https://www.acmicpc.net/problem/2839
문제 요약
설탕 N 킬로그램을 배달해야합니다.
설탕은 봉지에 담겨져 있습니다. 봉지는 3킬로그램과 5킬로그램 봉지가 있습니다.
최대한 적은 봉지를 들고 가려 합니다.
설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성해야 합니다.
문제 풀이
1. n을 입력받습니다.
2. n * n 만큼 돌아가는 반복문을 만듭니다.
3. 바깥 반복문은 5키로그램 체크 안쪽 반복문은 3키로그램 채크입니다.
4. 5키로그램 갯수당 3키로그램 봉투가 몇개 들어가는지 합을 구합니다.
5. 그 합이 기존에 더했던 합보다 작을 경우 새로 갱신해줍니다.
6. cnt를 출력합니다.
주의할 점
가장 적은 횟수를 출력해야 하기 때문에 비교 조건에 기존값과 비교하는 내용을 꼭 넣어줘야합니다.
코드
#include<iostream>
using namespace std;
int n;
int cnt = -1;
int mn = 1234897;
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (i * 5 + j * 3 == n && mn > i + j)
{
mn = i + j;
cnt = i + j;
}
}
}
cout << cnt;
return 0;
}
반응형
예제1
18
결과1
예제2
4
결과2
예제3
6
결과3
예제4
9
결과4
예제5
11
결과5
'BAEKJOON > Greedy' 카테고리의 다른 글
C++ / 1138 / 한 줄로 서기 ( 그리디 알고리즘 ) (0) | 2025.01.05 |
---|---|
C++ / 1541 / 잃어버린 괄호 ( 그리디 알고리즘 ) (0) | 2025.01.04 |
C++ / 1439 / 뒤집기 ( 그리디 알고리즘 ) (0) | 2024.11.03 |
C++ / 1715 / 카드 정렬하기 ( 그리디 알고리즘 ) (0) | 2024.10.30 |
C++ / 10162 / 전자레인지 ( 그리디 알고리즘 ) (0) | 2024.10.29 |