[프로그래머스] 레벨 0 - 피자 나눠 먹기 (1)

Hoon Kang·2022년 11월 17일
0

프로그래머스

목록 보기
3/3
post-thumbnail

문제 설명

머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.

첫 시도

처음 문제를 봤을 때는 다음과 같은 알고리즘을 생각해 봤다.
1. 피자를 나눠먹을 사람의 수 n을 인수로 받는다.
2. 피자는 7조각이기 때문에, n이 7명 이하라면 정답은 한 판이 된다.
3. n이 7명보다 많을 경우, getPizza()라는 새로운 메서드를 호출한다.
4. getPizza()n을 인수로 받아 7로 나눈 몫을 pizza에 할당한다.

  • (만약 7로 나누어 떨어지지 않을 경우, 한 판이 더 필요하기 때문에 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);

역시 세상에는 다양한 방법들이 존재한다. 그리고 그렇기 때문에 나는 코딩이 좋다.

profile
세상의 모든 것들이 궁금한 개발자

0개의 댓글