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번만 비교한다.
- 조금만 생각해보면 어렵지 않기 때문에 재밌게 풀었다.