Jun 개발노트

프로그래머스 - 최대공약수와최소공배수

2020-01-16

최대공약수와최소공배수

const getMaxMin = (n, m) => {
    const numArr = [n, m];
    numArr.sort((a, b) => a - b);
    let GCD = 0;
    for (let i = numArr[1]; i >= 0; i--) {
        if (numArr[0] % i === 0 && numArr[1] % i === 0) {
            GCD = i;
            break;
        }
    }
    return [GCD, (n * m) / GCD];
};

const getMax = (n, m) => {
    const numArr = [n, m];
    numArr.sort().reverse();
    for (let i = numArr[1]; i >= 0; i--) {
        if (numArr[0] % i === 0 && numArr[1] % i === 0) {
            return i;
        }
    }
};

const getMin = (n, m) => {
    let max = getMax(n, m);
    return (n * m) / max;
};
test("최대 공약수, 최대 공배수", () => {
    expect(getMaxMin(3, 12)).toEqual([3, 12]);
});

test("최대 공약수", () => {
    expect(getMax(3, 12)).toEqual(3);
    expect(getMin(3, 12)).toEqual(12);
});