첫 번째 나의 풀이는 이러하다.
// 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다.
// 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때,
// n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
function solution(slice, n) {
let count = 1;
for (let i = 1; i <= n; i++) {
if (i % slice === 0) {
count++;
}
}
return count;
}
이 알고리즘의 문제점은 count = 1;
이다.
0
일때의 케이스가 없다.
위 코드는 테스트 코드 정답률이 64%가 나왔었다.
정답률이 64%인 이유는 아마 프로그래머스 테스트 코드에 0일때의 경우가 있었던 것 같다.
Math.ceil
메서드를 사용하여 해결하였다.
Math.ceil
소수점 이하부터
올림
한다.
만약 4조각짜리 피자(slice
)를 21명(n
)이 최소 한 조각 이상 먹을 수 있게 하려면 피자 6판이 필요하게 되는데, 이 때 무조건 소수점 이하에서 올림하는 Math.ceil
메서드를 이용하면 쉽게 문제해결 가능한 것을 알게되었다.
const solution = (slice, n) => {
const result = Math.ceil(n / slice);
return result;
};
solution(4, 21); // result : 6