[프로그래머스] 피자 나눠 먹기 (3)


문제 설명

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 2 ≤ slice ≤ 10
  • 1 ≤ n ≤ 100

입출력 예

slicenresult
7102
4123

입출력 예 설명

입출력 예 #1

  • 10명이 7조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 2판을 시켜야 합니다.

입출력 예 #2

  • 12명이 4조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 3판을 시켜야 합니다.

나의 풀이

function solution(n) {
  var pizza = 0;
  if (n % 6 == 0) {
    return n / 6;
  } else if (n % 3 == 0) {
    return n / 3;
  } else if (n % 2 == 0) {
    return n / 2;
  } else {
    return (pizza = n);
  }
  return pizza;
}

나의 두번째 풀이(Code Refactoring)

function solution(n) {
  for (i = 1; i <= n; i++) {
    if ((6 * i) % n === 0) {
      return i;
    }
  }
}

// 이전 코드에선 여러 조건문으로 코드가 지저분했다
// 6개로 나눈 조각중에서 모든 사람이 피자를 한 조각 이상 먹으려면 i만큼의 피자 갯수가 필요하다

참고 할 만한 다른 사람의 코드

const solution = (n) => {
  let piece = 6;

  while (true) {
    if (piece % n === 0) {
      break;
    }
    piece += 6;
  }

  return piece / 6;
};

//while문을 이용한 방법 , 나머지가 0이 될때까지 무한루프