[BOJ] 2839번: 설탕배달(Java)

1235 단어 그리디그리디

문제



2839번: 설탕 배달


풀이


가장 적은 수의 봉지로 배달하기 위해서는 5kg의 봉지로 가져갈 수 있는 만큼 최대한 가져가야 한다.

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
​
public class Main {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int three = 0;
        int five = n/5;             //5kg의 봉지를 최대로 가져갔을 때
        
        while(five>=0) {            //5kg의 봉지를 하나도 가져가지 않을 때 까지
            int rem = n-(five*5);   //현재 남아있는 양 = 3kg봉지로 매꿔야하는 양
            if(rem%3 == 0) {        //무게가 딱 알맞게 떨어진다면
                three = rem/3;      //현재가 가장 적은 수의 봉지
                break;
            }
            else five--;            //나눠떨어지지 않는다면, 5kg의 봉지를 하나씩 줄여줌
        }
        if(five == -1 && three == 0) System.out.println("-1");  //무게가 딱 떨어지지 않는다면 -1
        else System.out.println(three+five);
    }
}

좋은 웹페이지 즐겨찾기