Algorithm & CS/백준 알고리즘

[백준 알고리즘] 2839번 설탕 배달 Java

홀쑥 2020. 6. 15. 21:00

설탕을 배달하는데 3킬로그램 봉지와 5킬로그램 봉지에 딱맞게 최소한의 봉투로 담고싶단다.

a : 담고 싶은 설탕 kg

b : 5kg 설탕봉투

result : 총 봉투의 개수

5kg 봉투로 최대한 담고 남은 양을 3kg에 담아야 가장 최소한의 봉투로 담기 때문에 먼저 5kg봉투로 담는다는 가정을 한다.

5kg으로만 가득 담고 남은 양이 3kg으로 나눠지는지 확인하고 안나눠진다면 5kg봉투 하나를 빼고, 또 3kg으로 나눠지는지 확인하고 안나눠지면 또 5kg봉투를 빼고 반복하다가 만약 3kg으로 나눠지면 총 봉투의 수를

b + ( a - b * 5) / 3 로 계산했다. 따라서 코드를 

import java.util.Scanner;

public class back2839 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a= sc.nextInt();
		int result=-1;
			for (int b = a/5; b >= 0; b--) {
				if((a-b*5)%3==0) {
					result = b+((a-b*5)/3);
					break;
				}
			}
		System.out.println(result);
	}
}

이렇게 짜보았다.