728x90
프로그래머스 코딩테스트 연습 문제지
코딩 영역
Lv.1성명 |
수험 번호 | - |
최대공약수와 최소공배수
34. 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두
수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
* 두 수는 1이상 1000000이하의 자연수입니다.
function solution(n, m) {
var answer = [];
let a = Math.min(n, m);
let b = Math.max(n, m);
for(let i = a; i >= 1; i--) {
if(a % i == 0 && b % i == 0) {
return [i, (a * b / i)]
}
}
return answer;
}
나의 풀이
n과 m의 최대공약수를 찾은 후, 최소공배수를 구해주었습니다 !
최소공배수를 구하는 공식 {(n * m) / 최대공약수} 참고해주세요 🥸
최소공배수를 구하는 공식 {(n * m) / 최대공약수} 참고해주세요 🥸
function gcdlcm(a, b) {
var r;
for(var ab= a*b;r = a % b;a = b, b = r){}
return [b, ab/b];
}
다른 풀이
댓글에 한참을 다시봤더니 이해하셨다고 되어있던데 전 얼마나 더 봐야 이해가 될런지..
'프로그래머스' 카테고리의 다른 글
프로그래머스 | Lv.0 7의 개수 (1) | 2022.11.29 |
---|---|
프로그래머스 | Lv.0 공 던지기 (1) | 2022.11.29 |
프로그래머스 | Lv.1 이상한 문자 만들기 (1) | 2022.11.29 |
프로그래머스 | Lv.1 행렬의 덧셈 (1) | 2022.11.29 |
프로그래머스 | Lv.1 직사각형 별찍기 (3) | 2022.11.28 |
댓글