2839. 설탕 배달 [JAVA]

Nak.s·2023년 1월 19일
0

CodeTest

목록 보기
13/19

Nkg의 설탕을 5kg 짜리 봉투와 3kg짜리 봉투로 정확하게 나눠담을 수 있는 경우
배달이 가능하다. 1kg 혹은 2kg이 남는경우 배달이 불가하다.

예를 들어 4kg 그램의 경우 3kg 하고 1kg 이 남아 배달이 불가하다.

따라서, 풀이 방법은
Nkg의 설탕을 5kg 으로 나누고, 나누어 떨어지면 그 몫이 정답이고
나누어 떨어지지 않는다면, 그 몫 만큼 반복문을 돌려서
N - (5 * 몫) 을 3으로 나눈 나머지가 0이 라면,
해당 반복문 순차의 몫이 5kg의 봉투갯수고, 해당 반복문 순차의 몫 / 3의 몫이 3kg 짜리 봉투 갯수이다.

//설탕 배달
//5와 3을 최소 횟수로 합하여 N을 만드는 문제
public class BJ_2839 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int weightOfSugar = Integer.parseInt(br.readLine());
        if (weightOfSugar < 3 || weightOfSugar > 5000) return;
        int five = 0;
        int three = 0;
        int quotient = weightOfSugar / 5;
        if(weightOfSugar % 5 == 0) { //5로 나누어 떨어는 경우
            System.out.println(quotient);
            return;
        }
        while (quotient > -1){
            if((weightOfSugar - (5 * quotient)) % 3 == 0){ //5킬로그램으로 가져다 줄수 있는 최대 갯수 부터 - 해가며 3으로 가져다 줄수 있는 경우의 수 찾음.
                three = (weightOfSugar - (5 * quotient)) / 3;
                five = quotient;
                System.out.println(five + three);
                return;
            }
            if(quotient == 0) {
                System.out.println(-1);
                return;
            }
            --quotient;
        }
    }
}```
profile
궁금함이 많은 개발자

0개의 댓글