백준 온라인 저지(Baekjoon Online Judge) 2839번 문제 풀이
설탕 배달
설탕을 정확하게 N kg 배달해야 할 때, 봉지를 최소 몇 개를 가져가면 되는지 구하라. 설탕 봉지는 3kg와 5kg 봉지가 있다.
예를 들어, 18kg 설탕을 배달해야 할 때, 3kg 봉지 6개를 가져가도 되지만, 5kg 3개와 3kg 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.
입력 예시 | 출력 예시 |
18 |
4 |
4 |
-1 |
6 |
2 |
9 |
3 |
11 |
3 |
풀이
1. N을 입력 받는다.
2. N을 5로 나눈 값을 CNT에 대입한다.
2-1. 5로 나누어 떨어지면 몫 반환 → (4)로 이동
2-2. 5로 나누어 떨어지지 않는다.
3. N에서 5kg 봉지 * CNT을 뺀 나머지 값이 3으로 나눈다.3-1. CNT가 -1이면 반복문을 탈출한다 → (4)로 이동
3-1. 3으로 나누어 떨어지면 CNT에 몫을 더해서 반환 → (4)로 이동
3-2. 3으로 나누어 떨어지지 않으면 CNT값을 1감소 시킨다 → (3)로 이동
4. CNT를 출력한다.
정답
C
#include <stdio.h>
int main()
{
int N=0;
int cnt=0;//봉지 수
scanf("%d", &N);
cnt=N/5;
if(N%5 != 0){
for(;cnt>=0;cnt--)
{
if( (N-5*cnt)%3 == 0){
cnt+=(N-5*cnt)/3;
break;
}
}
}
printf("%d", cnt);
return 0;
}
순서도 작성
문제를 어떻게 풀어야 할지 순서도를 작성해보면 좋다!
'문제풀이 > 백준 온라인 저지' 카테고리의 다른 글
백준 알고리즘 - 2739 (C) (0) | 2018.07.01 |
---|---|
백준 알고리즘 - 2741~2742 (C) (2) | 2018.06.30 |
백준 알고리즘 - 11718~11719 (C) (0) | 2018.05.23 |
백준 알고리즘 - 10172 (C) (0) | 2018.05.23 |
백준 알고리즘 - 7287 (C) (0) | 2018.05.22 |