[C] 백준 2839번 - 설탕 배달

2020. 7. 12. 22:48Algorithm/백준

 경우의 수를 너무 세세하게 생각했더니.. 알고리즘이 산으로 가버려서 구글링 했다!!

 

 알고리즘을 분석하면,

① 5의 배수면 → 5로 나눈 몫을 바로 출력

② 5의 배수가 아니면 3을 빼고 count++; 했을 때, 

    2-1) 5의 배수가 되면 다음 반복에서 if문 조건(5의 배수)을 만족시키므로 5로 나눈 몫을 더해서 출력

      ex) 18, 21, 24

    2-2) 3의 배수가 되면 n값이 0이 되어 다음 반복에서 if문 조건(0을 5로 나누면 0이 됨)을 만족시키므로 5로 나눈 몫을 더해서 출력

      ex) 3, 6, 9, 12

    2-3) 음수가 되면 n(입력한 수)을 만들 수 없으므로 -1 출력

      ex) 4, 7

#include <stdio.h>

int main()
{
	int n;
	int count = 0;
	scanf_s("%d", &n);

	while (1)
	{
		if (n % 5 == 0)
		{
			count+=(n/5);
			printf("%d", count);
			break;
		}
		n -= 3;
		count++;
		if (n < 0)
		{
			printf("-1");
			break;
		}
	}
}

잘못된 점이 있으면 아래 댓글로 많이 남겨주세요!

감사합니다.

'Algorithm > 백준' 카테고리의 다른 글

[C] 백준 10872번 - 팩토리얼  (0) 2020.07.16
[C] 백준 2750번 - 수 정렬하기  (0) 2020.07.13
[C] 백준 1712번 - 손익분기점  (0) 2020.07.12
[C++] 백준 9012번 - 괄호  (0) 2020.07.10
[C++] 백준 17298번 - 오큰수  (0) 2020.07.10