프로그래머스라는 알고리즘 문제를 풀 수 있는 재미있는 사이트가 있다.
알고리즘 연습하는데 도움이 많이 될 것 같다.
재미있다.
function gcdlcm(a, b) {
var answer = [];
var bigger = a >= b ? a : b;
var smaller = a <= b ? a : b;
// 최대공약수
var smallerDivisorArr = [];
var biggerDivisorArr = [];
var i = 1;
while(i <= smaller){
if(smaller%i == 0){
smallerDivisorArr.push(i);
}
if(bigger%i == 0){
biggerDivisorArr.push(i);
}
i++;
};
for(var bIndex = biggerDivisorArr.length-1; bIndex >= 0; bIndex--){
for(var sIndex = smallerDivisorArr.length-1; sIndex >= 0; sIndex--){
if(biggerDivisorArr[bIndex] == smallerDivisorArr[sIndex]){
answer[0] = biggerDivisorArr[bIndex];
bIndex = 0;
break;
}
}
}
// 최소공배수
var multiple;
var k = 1;
while(true){
multiple = bigger * k++;
if(multiple%smaller == 0){
answer[1] = multiple;
break;
}
};
return answer;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log(gcdlcm(3,12));
이거 짜놓고 다른 사람 풀이 봤는데....
완전 오징어 -_-.....
분발해야할듯;;
'알고리즘' 카테고리의 다른 글
재귀함수를 이용한 부분집합 구하기 (0) | 2020.03.12 |
---|---|
숫자 대각선 나열하기 (0) | 2017.12.07 |
약수의 합 javascript (0) | 2017.11.09 |
제일 작은 수 제거하기 python (0) | 2017.11.09 |