Giant Danio Fish
본문 바로가기
알고리즘

프로그래머스 1단계 : 최대공약수와 최소공배수

by 코딩왕자 2022. 11. 27.

프로그래머스 1단계 : 최대공약수와 최소공배수

코딩테스트 연습 > 연습문제 > 최대공약수와 최소공배수


✔ 문제 설명

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.

✔ 제한 사항

두 수는 1이상 1000000이하의 자연수입니다.

✔ 입출력 예

n m return
3 2 [3,12]
2 5 [1,10]

✔ 문제풀이

function solution(n, m) {
    let a;
    for(let i = 0; i <= n; i++) {
        if(n % i === 0 && m % i === 0) {
          a = i;
        }
    }
    let b = n * m / a;
    return [a, b];
}

✔ 설명

간단하게 최소공배수와 최대공약수를 구해준 뒤 조건에 맞게 출력해줍니다. 참 쉽죠?

✔ 다른사람의 풀이

function gcdlcm(a, b) {
    var r;
    for(var ab= a*b;r = a % b;a = b, b = r){}
    return [b, ab/b];
}

for문의 숨겨진 기능인가요..? 반복문을 r=a%b 이 0이 된다면 종료되도록 만들었군요. 깔끔합니다.

댓글


광고 준비중입니다