문제
https://www.acmicpc.net/problem/2839
Algorithm
1. 정수 N을 입력을 받아서 N킬로그램을 만들 수 있을 때와 없을 때로 구분한다.
2. 5킬로그램의 설탕 봉지를 가능한 많이 사용하는 것이 최소 개수가 될 수 있다.
3. N의 경우는 5킬로그램의 설탕 봉지만 쓰는 경우와 3킬로그램의 설탕 봉지만 쓰는 경우 2가지 다 쓰는 경우 불가능한 경우 총 4가지가 존재한다.
4. while문을 통해서 불가능한 경우와 나머지 3가지 경우를 분리하고, 5의 배수일 때를 확인하는 조건문을 통해서 최소 개수를 얻을 수 있다.
5. 5의 배수가 아니라면 3킬로그램의 설탕 봉지를 사용해서 3을 뺀후 다시 반복문을 통해서 최소 개수를 얻을 수 있다.
Code
#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
int a = 0;
while(n >= 0){
//N이 5의 배수인지 확인
if(n % 5 == 0){
a += (n/5);
cout << a << endl;
return 0;
}
//N이 5의 배수가 아니면 3을 빼서 다시 반복문 진행
n -= 3;
a++;
}
//N이 불가능한 값이면 반복문을 돌다 음수가 되기 때문에 -1 출력
cout << -1 << endl;
}
'Koala - 16기 > 코딩테스트 기초 스터디' 카테고리의 다른 글
[백준/Python] 17219번: 비밀번호 찾기 (0) | 2024.10.06 |
---|---|
[백준/Python] 1764번 듣보잡 (0) | 2024.10.06 |
[백준/Python] 14579번: 덧셈과 곱셈 (0) | 2024.09.30 |
[백준/C] 2752번: 세 수 정렬 (0) | 2024.09.29 |
[백준/Python] 5361번 : 전투 드로이드 가격 (0) | 2024.09.29 |