프로그래머스 (JS)/Lv. 0

[Programmers] 120815번 - 피자 나눠 먹기(2)

hodo- 2023. 3. 2. 23:42

Problem

문제 보기

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


Solution

function solution(n) {
    const x = (a, b) => {
        if (b === 0) return a;
        return x(b, a % b);
    }
    
    const y = (a, b) => (a * b) / x(a, b);
    
    return (y(n, 6) / 6);
}
최소공배수 구하는 문제길래 유클리드 호제법으로 풀었는데
다른 사람 풀이를 보니까 괜히 복잡하게 푼 거 같다
const solution = (n) => {
    let piece = 6

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