[BOJ/C++] 2839 설탕 배달 : Greedy

Hanbi·2023년 5월 11일
0

Problem Solving

목록 보기
65/108
post-thumbnail

문제

https://www.acmicpc.net/problem/2839

풀이

그리디 문제를 너무 오랜만에 풀어보는데..
5로 다 나누고 3을 생각할 게 아니라, 5로 나눈 나머지가 0인지를 보고 그때 그때 처리해줘야한다.

N이 5로 나눈 나머지가 0이면 바로 ans 출력하고 종료하고,
0이 아닐 경우에는 3을 빼주고 다시 반복문 도는 과정을 반복!

코드

#include <iostream>

using namespace std;

int main() {
	int N;
	int ans = 0;

	cin >> N;
	while (N >= 0) {
		if (N % 5 == 0) {
			ans += (N / 5);
			cout << ans;

			return 0;
		}
		else {
			N -= 3;
			ans++;
		}
	}

	cout << -1;

	return 0;
}
profile
👩🏻‍💻

0개의 댓글