CodingTest

[백준][2839] 설탕 배달

curiousKidd 2022. 9. 29. 17:43
반응형

https://curiouskidd.tistory.com/15
main calss 규정

 

https://www.acmicpc.net/problem/2839

설탕을 3kg, 5kg 단위로 가장 적게 가져갈 수 있는 수량을 계산하는 문제입니다
정확한 배분이 가능할 경우 계산값을 출력하고, 배분이 불가능 할 경우 -1을 출력해야 합니다.

 

    int n = 10;                     // 설탕의 무게

    int five = n / 5;               // 5kg 설탕 갯수
    int three = (n % 5) / 3;        // 3kg 설탕 갯수
    int other = (n % 5) % 3;        // 나머지 유무

    if (n == 4 || n == 7) {            // 문제 규정상 설탕이 4kg or 7kg 일경우 정확한 배분이 불가능
        System.out.println(-1);        // 따라서 무조건 -1 출력
    } else {
        if (other == 1) {
            five = five - 1;
            three = three + 2;
        } else if (other == 2) {
            five = five - 2;
            three = three + 4;
        }
        System.out.println(five + three);
    }

우선 규정이 3kg, 5kg인 이상 4kg 7kg 은 정확한 배분이 불가능합니다.
그래서 무조건적으로 -1을 출력하게 하였습니다.

 

남은 값들의 계산식의 경우 5로 나눈 나머지 값에서 또 3으로 나누는 이상 other의 값은 1 or 2밖에 나올 수 없을 것입니다.

 

    if (other == 1) {
       five = five - 1;
       three = three + 2;
    }

나머지가 1인 경우에 5kg 의 갯수를 하나 빼서 3kg 2개로 변경 (6kg)

 

     else if (other == 2) {
        five = five - 2;
        three = three + 4;
     }

나머지가 2인 경우에 5kg 의 갯수를 두개 빼서 3kg 4개로 변경(12kg)

 

해당 코드로 테스트 진행하였고, 테스트에 성공하였습니다.

반응형