[C] 백준 2839번 - 설탕 배달
2020. 7. 12. 22:48ㆍAlgorithm/백준
경우의 수를 너무 세세하게 생각했더니.. 알고리즘이 산으로 가버려서 구글링 했다!!
알고리즘을 분석하면,
① 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 |