문제 설명
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
제한사항
두 수는 1이상 1000000이하의 자연수입니다.
나의풀이
JS
function solution(n, m) {
let result = []
let gcd = []
let lcm = []
for(let i=1;i<=m;i++){
if(m%i===0&&n%i===0){
gcd.push(i)
}
if(n*i%m*i===0){
lcm.push(n*i)
}
}
result.push(Math.max(...gcd))
result.push(Math.min(...lcm))
return result
}
정리
gcd : 최대공약수를 담을 배열
lcm : 최소공배수를 담을 배열
for : 현재 문제에서는 m 이 가장 큰 수이므로 m 을 기준으로 계산하였으나 반대의 경우 Math.max()메서드를 사용하여 n 과 m 중 더 큰값을 찾는다면 문제없을것으로 생각됨
'코딩테스트' 카테고리의 다른 글
삼총사 (0) | 2025.03.15 |
---|---|
이상한 문자 만들기 (0) | 2025.03.14 |
직사각형 별찍기 (0) | 2025.03.03 |
행렬의 덧셈 (0) | 2025.03.02 |
문자열 다루기 기본 (0) | 2025.02.28 |