[백준 2839번] C++ 설탕 배달 (그리디)

MURRAIYA·2023년 7월 1일

2839번

💍문제파악

입력받는 N을 3과 5 최소 개수로 구성시키는 문제.
3과 5 개수의 합을 출력해야 하고, 만약 3과 5로 N을 구성할 수 없다면 -1을 출력하면 된다.

중고등학생 때 확통에서 나오던 거스름돈 문제와 비슷하다.

5로 최대한 채우고 남은걸 3으로 채우는 식으로 착각했다면 틀렸을 것이다.
반례로 N=16인 경우를 들 수 있겠다.

💍 코드

코드는 간단하다. 확통 풀던 그대로 풀면 된다.
3개수를 0,1,2,.. 늘려가며 그 상황에서 5의 개수를 계산한다. 끄읏.

#include <iostream>
using namespace std;

int main(void) {
	int N;
	cin >> N;
	
	int max = N / 3;
	for (int i = 0; i <= max; i++) {
		int num = 0;
		if ((N - 3 * i) % 5 == 0) {
			num = i + (N - 3 * i) / 5;
			cout << num;
			return 0;
		}
	}
	cout << -1;
	return 0;
}
profile
🙃SUJI KIM🙃 🚩 Inha University RCVLab 📷 Computer Vision 🚗 Autonomous Driving Robots 💫 SLAM

0개의 댓글