[백준/C++] 2839번: 설탕 배달

꿈별·2022년 12월 30일
0

문제풀이

목록 보기
15/52

문제


풀이

  1. N : 설탕 무게, div5 : 5kg 봉지 수 변수 정의 및 초기화
  2. N을 입력받아서 5로 나눈 값을 div5에 대입
  3. 1번의 결과가 0 이상일 경우 while문 진입
    2-1. 2를 만족하고, (N-5*div5)(5kg 봉지에 담고 남은 설탕 무게)가 3으로 나누어 떨어질 경우
    -> ans + (N-5*div5)/3 (5kg 봉지 수+3kg 봉지 수) 를 출력한 뒤 프로그램 종료.
    2-2. 2를 만족하지만 2-1의 조건은 만족하지 않는다면
    -> 5kg 봉지 수를 한 개 줄이고 2번부터 반복
  4. while문을 탈출했다는 건 ans이 음수라는 뜻이므로 5kg, 3kg 봉지로 설탕 Nkg를 나눌 수 없다.
    -> 따라서 -1 출력
#include <iostream>
using namespace std;

int main()
{
	int N, div5 = 0;
	cin >> N;
	div5 += N / 5;
	while (div5 >= 0)
	{
		if ((N - 5 * div5) % 3 == 0)
		{
			cout << div5 + (N - 5 * div5) / 3;
			return 0;
		}
		div5--;
	}
		cout << -1;
}

0개의 댓글