백준 2839번 - 설탕 배달 c언어

김대일·2021년 5월 7일
0

사탕가게에 설탕을 배달하는 상근이는 정확한 키로수의 봉지를 사용해서 배달하는것을 좋아하는데 설탕공장에는 5kg와 3kg의 봉지가 있다.

이때, 상근이가 사탕가게에 설탕을 배달하는데 최대한으로 적게 봉지를 사용해서 배달 하려면 n키로의 설탕을 배달할때 몇개의 봉지를 가져가야하는지 만들어보는 프로그램.

접근 방법

  • 5키로짜리 봉지를 먼저 사용한다
  • 만약 5키로가 맞지 않다면 3키로를 사용한다
  • 3키로도 맞지 않다면 딱 맞아 떨어지지 않는 크기의 설탕이니 -1 출력
#include<stdio.h>
int main(){
	int user;
	int count = 0; 
	
	scanf("%d", &user);
	
	while(user > 0){   // 배달 가야할 설탕이 0보다 작을때까지 반복문으로 설탕을 봉지에 포장한다
		if(user % 5 == 0){    // 제일 먼저 5로 나눴을때 나머지가 0 이면 5의 배수이니 user 입력 값에서 5를 빼주고 count++
			user -=5;
			count++;
		}
		else if(user % 3 ==0){  // 5로 안나눠지고 3으로 나눠서 나머지가 0 이라면 3의 배수이니 user 에서 3을 빼주고 count++ 
			user -=3;
			count++;
		}
		else if(user > 5){  //   5나 3으로 나눠서 딱 떨어지지 않는다면 최솟값일수 있으니 일단 5를 빼줘서 계속 반복문을 돌려본다. 
			user -=5;
			count++;
		}
		else{
			count = -1;  // 계속 빼줬는데 5의 배수나 3의 배수에 걸리지 않는다면 딱 맞아 떨어지지 않는 값이니 -1 출력 
			break;
		}
		
	}
	printf("%d", count);
}

느낀점

이번 문제는 그동안 풀었던 문제보다는 훨씬 쉬운 난이도였다. 문제를 보자마자 어떻게 해야할지 바로 떠올랐다. 공식을 세우기 보단 살짝 노가다 성으로 풀긴 했지만 그래도 바로 떠올렸다는것에 감사한다..

profile
도비코딩

0개의 댓글

관련 채용 정보