알고리즘 연습

[2839번] 설탕배달 - Java

밀깜 2021. 11. 11. 20:59

 

1. 배운점

- 반복문을 사용할 때는 실행을 최소화할 방법을 생각해본다.

- 다중 반복문을 다룰 때 반복문 앞에 Loop + 번호를 붙여 쉽게 종료시킬 수 있다.

 

2. 개선할 점

 

3. 궁금한 점

 

4. 풀이

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		// import java.util.Scanner
		Scanner scan = new Scanner(System.in);

		// N 입력받기
		int sugarBags = scan.nextInt();

		// 봉지의 최소 개수 출력하기
		int minBags = minimumBags(sugarBags);
		System.out.println(minBags);

	}
	
	// 최소 개수 구하는 메서드
	private static int minimumBags(int sugarBags) {
		int result = 0;

		Loop1 : // 5kg짜리 봉지를 최대한 사용한다
		for(int i = sugarBags/5; i >=0; i--) {
			Loop2 : // 3kg 봉지를 최소한으로 사용한다
			for(int j = 0; j <= sugarBags/3; j++) {

				if(i * 5 + j * 3 == sugarBags) {
					result = i + j;
					break Loop1;
				} 
			}
			if(result == 0) {result = -1;}
		}
		return result;
	} 
}