✔문제 설명
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
✔입출력 예
n m return
3 | 12 | [3, 12] |
2 | 5 | [1, 10] |
✔나의 풀이
function solution(n, m) {
const array_a = [];
const array_b = [];
for(let i=1;i<=n;i++){
if(n%i===0){
array_a.push(i)
}
}
for(let i=1;i<=m;i++){
if(m%i===0){
array_b.push(i)
}
}
const max = array_a.filter((item,index)=>{
return array_b.includes(item)
});
var a=max[max.length-1]
return ([max[max.length-1],(n*m)/a])
}
각각의 빈 배열에 n의 약수와 m의 약수를 넣어줬다.
max 변수에는 filter함수를 써서 공통 약수를 가지고 있는것만 추출했다.
공통 약수들 중에서 최대공약수는 배열 마지막에 저장되어 있다.
최소공배수는 n과m의 곱을 최대 공약수로 나누면 나온다.
'알고리즘 > 자바스크립트-프로그래머스' 카테고리의 다른 글
[프로그래머스 | Javascript] 코딩테스트 Lv1 - 이상한 문자 만들기 (0) | 2023.01.03 |
---|---|
[프로그래머스 | Javascript] 코딩테스트 Lv1 - 같은 숫자는 싫어 (0) | 2023.01.03 |
[프로그래머스 | Javascript] 코딩테스트 Lv1 - 행렬의 덧셈 (0) | 2023.01.02 |
[프로그래머스 | Javascript] 코딩테스트 Lv1 - 부족한 금액 계산하기 (0) | 2023.01.02 |
[프로그래머스 | Javascript] 코딩테스트 Lv1 - 문자열 다루기 기본 (0) | 2023.01.02 |