[문제풀이] gcd & lcm 구하기 / TIL # 35

velg·2021년 9월 13일
0

문제풀이

목록 보기
2/12

문제 링크

문제 접근

유클리드 호제법를 이용해 풀이해보자

나의 풀이

const gcd = (n, m) => {
  let tmp;
  while(m) {
    tmp = n % m;
    n = m;
    m = tmp;
  }
  return n;
}   

function solution(n, m) {
    var answer = [];
    answer.push(m ? gcd(n, m % n) : n);
    answer.push(n*m / answer[0]);
    return answer;
}

gcd, lcm은 유클리드 호제법을 통해 구하였고 나온 값을 answer에 푸쉬하여 리턴하였다

다른 풀이

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

재귀함수로 풀이하는 것은 어느정도 생각하였는데, 위 처럼 for문을 이용해서 한 줄로 정리 할 수 있다는 것은 꿈에도 생각 못했다

실용적인 코드는 아니지만 멋있는 코드라고 생각한다

profile
초보 개발자

0개의 댓글