function solution(a, b) {
var gcd = calc_gcd(a, b);
var lcm = (a * b) / gcd;
return [gcd, lcm];
}
function calc_gcd(a, b) {
if (b == 0) return a;
return a > b ? calc_gcd(b, a % b) : calc_gcd(a, b % a);
}
a>b 가정에서
a를 b로 나눠진다면 b가 최대 공약수가 되고
최소공배수는 a 곱하기 b를 최대공약수로 나누면 된다.
calc_gcd에서 a와 b를 받는다.
a>b 가 사실이라면 재귀함수를 통해 b와 a와b를 나눈 나머지(r)를 넣는다.
다시 calc_gcd 함수로 들어와 b=>(a와b를 나눈게) 0이라면 b인 a를 리턴한다.
'일반 학습 > 코딩 테스트' 카테고리의 다른 글
[프로그래머스] 괄호 변환 (0) | 2022.03.05 |
---|---|
[프로그래머스] 문자열 압축 (0) | 2022.03.04 |
[JavaScript] Splice (0) | 2022.03.02 |
[JavaScript] 키패드를 배열로 만들어 키값간 거리 찾기 (0) | 2022.02.23 |
TOY26: LSCS 연속된 부분 배열 (0) | 2021.11.15 |
댓글