프로그래머스 JS LV0

LV0 52 피자 나눠 먹기 (2)

와라리요 2022. 10. 21. 14:53

문제

 - 머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

 

입출력 예

n result
6 1
10 5
4 2

 

나만의 풀이

  이 문제는 코드를 구성해 해결하려고 노력하다 막혀서 수학적으로 접근을 하여 풀었습니다. 수학적 생각해보면 피자 수사람 수를 했을 때 나머지가 생기면 피자 수 * 2 / 사람 수를 하고 나머지가 생기면 피자 수 * 3 / 사람 수를 반복하면 나머지가 생기지 않을 시 필요한 *수가 필요한 피자의 판 수가 된다. 그것을 코드로 만들어 보았다.

function solution(n) {
    let answer = 1;
    let pizzaPiece = 6
    while (pizzaPiece % n !== 0) {
        answer += 1;
        pizzaPiece += 6;
    }
    return answer;
}

  그런데 지금 보니 그냥 피자에  * 6을히면 코드 길이가 작아지는 게 보여 수정했다.

function solution(n) {
    let pizza = 1;
    while (pizza * 6 % n !== 0) {
        pizza += 1;
    }
    return pizza;
}

창고! while은 반복문으로 ()안에 거짓(false)이 나오기 전까지 계속 실행된다.