머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
처음 문제를 봤을 때는 다음과 같은 알고리즘을 생각해 봤다.
1. 피자를 나눠먹을 사람의 수 n
을 인수로 받는다.
2. 피자는 7조각이기 때문에, n
이 7명 이하라면 정답은 한 판이 된다.
3. n
이 7명보다 많을 경우, getPizza()
라는 새로운 메서드를 호출한다.
4. getPizza()
는 n
을 인수로 받아 7로 나눈 몫을 pizza
에 할당한다.
pizza
에 1을 더한다.)let solution = (n) => {
let answer = 1;
if (n <= 7) {
answer = 1;
} else {
answer = getPizza(n);
}
return answer;
};
let getPizza = (n) => {
let pizza = Math.floor(n / 7);
if (n % 7 !== 0) {
pizza += 1;
}
return pizza;
};
문제를 다 풀고 다른 사람들의 풀이를 확인해 본 결과, 저렇게 복잡하게 생각할 필요가 없었다. 그냥 7로 나눈 결과를 올림하면 나누어 떨어지지 않는(소수로 표시되는) 부분에 대한 피자 한 판이 더 추가되는 거니까!
Math.ceil()
메서드를 사용하면 다음과 같이 쉽게 나타낼 수 있었다.
let solution = (n) => Math.ceil(n/7);
역시 세상에는 다양한 방법들이 존재한다. 그리고 그렇기 때문에 나는 코딩이 좋다.