본문 바로가기

Algorithm/[BOJ] - JAVA

[백준] 2839 : 설탕 배달 JAVA 풀이

이 문제에서는 봉지의 최소 개수를 찾아야 하는데, 가능한 한 5kg짜리 봉지를 가져가야 한다는 것이다.

입력받은 N이 5로 나눠떨어지면 바로 N을 5로 나눈 몫을 출력하면 된다.

그렇지 않은 경우에는 3kg 봉지를 하나씩 추가하면서, 남은 무게가 5로 나눠떨어지는지 체크했다.

import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine()); // 배달해야 하는 설탕의 무게
        int cnt=0; // 봉지의 개수
        
        while(true){
            if(N%5==0){ // 5로 나눠떨어진다면
                cnt += N/5; // N을 5로 나눈 몫 만큼의 봉지를 추가함
                System.out.println(cnt); // 출력하고 반복문 탈출
                break;
            }
            if(N<0){ // 3kg와 5kg의 조합으로 만들 수 없다면
                System.out.println(-1);
                break;
            }
            N -=3; // N이 5로 나눠떨어지지 않았으면 3kg 봉지를 추가
            cnt++;
        }
    }
}