[백준 2839]설탕 배달 - JAVA 풀이
바로가기
문제
해석
5kg 과 3kg 설탕이 있을 때, 최소한의 개수로 목표량을 채우는 문제
목표량을 정확하게 맞출 수 없으면 -1을 반환
풀이
개수를 최소한으로 하기 위해서는 5kg 설탕을 많이 사용해야 한다.
먼저
n
을5
로 나누어 주고 나머지가0
이 아니라면n - 3
을 해준다.(최대한 5kg으로 채운 뒤 3kg으로 나머지를 채우는 방식)n % 5
가0
이 될 때까지 반복해준다. (반복할 때마다 설탕 개수는 하나씩 늘어난다.)n
이 마이너스가 되면 불가능 하므로-1
로 반환 한다.
코드
import java.io.*;
public class Main
{
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(calc(Integer.parseInt(br.readLine())) + "\n");
bw.flush();
bw.close();
}
public static int calc(int n){
int count = 0;
while(n % 5 != 0){
count++;
n -= 3;
if(n < 0)
return -1;
}
return count + n / 5;
}
}