CodeWars 일백 스물 번째 문제

Updated:

How Much?

public static String howmuch(int m, int n) {
		
    if(m > n) {
        int temp = m;
        m = n;
        n = temp;
    }

    int carCount = (m % 9 == 0) ? m / 9 : m / 9 + 1;
    int boatCount = m / 7;
    int carCost = 0;
    int boatCost = 0;

    String result = "";

    do {
        carCost = carCount * 9 + 1;
        boatCost = 7 * boatCount + 2;

        if(carCost == boatCost) {
            result += "[M: " + carCost + " B: " + boatCount + " C: " + carCount + "]";
        }

        if(carCost - boatCost >= 7 ) {
            boatCount++;
        } else {
            carCount++;
        }

    } while(carCost <= n && boatCost <= n);

    return "[" + result + "]";
}
  • Best 코드보다 내 알고리즘이 더 좋은 것 같다.
  • Best 코드들의 경우 m을 1씩 증가 시켜서 n까지 모두 비교한다.
  • 그러나 나의 경우 1에서 100까지 일때 19번만 비교한다.
  • 조금만 생각해보면 어렵지 않기 때문에 재밌게 풀었다.