<Algorithm> 피자 나눠 먹기 (3)

·2023년 6월 25일
0

프로그래머스

목록 보기
17/18

❌ 첫 번째 풀이 (오답)

첫 번째 나의 풀이는 이러하다.

// 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다.
// 피자 조각 수 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
profile
- 배움에는 끝이 없다.

0개의 댓글