본문 바로가기

프로그래밍/백준

백준 2839번: 설탕 배달 (C언어)

https://www.acmicpc.net/problem/2839

 

2839번: 설탕 배달

문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수

www.acmicpc.net

수작업으로 구할 때의 방식을 어떻게 코드로 옮기느냐가 문제인것같네요.

코드부터 짜려니까 막막했는데 수작업 거친 후에 코드짜니까 금방 풀렸어요:3

더보기
#include<stdio.h>
int main(){
	int N;
	int i, temp;
	
	scanf("%d",&N);
	temp = N;
	
	for(i=0; i<N/3; i++){
		if(temp%5==0) break;
		temp -= 3;
		//printf("%d\n",temp);
	}
	
	if(temp%5==0 || temp==0){
		printf("%d",i+temp/5);
	}
	else{
		printf("-1");
	}
	
	return 0;
}

간단히 설명하자면 3을 빼면서 5의 배수인지 확인하는 방식입니다.

가능한 숫자면 3을 빼다가 5의 배수가 되어서 빠져나오거나 3의 배수라면 temp가 0이 됩니다.