문제:
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요.
배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다.
예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/12940
풀이보기
function 최대공약수(x, y) {
while (y !== 0) {
let temp = y;
y = x % y;
x = temp;
}
return x;
}
function 최소공배수(x, y) {
for(let i = 1; ; i++) {
let check = true;
if((y * i) % x !== 0) {
check = false;
}
if(check) {
return y * i;
}
}
}
function solution(n, m) {
return [최대공약수(n, m), 최소공배수(n, m)];
}
단순히 두 수의 최대공약수와 최소공배수를 구하는 문제이므로
최대공약수를 반환하는 함수와 최소공배수를 반환하는 함수를 따로 만들어주었다.
근데 공식을 보면 두 수의 곱을 최대공약수로 나눠주면 최소공배수라고 한다 ㅎㅎ ..
그럼 아래와 같이 바꿀 수 있다.
function 최대공약수(x, y) {
while (y !== 0) {
let temp = y;
y = x % y;
x = temp;
}
return x;
}
function solution(n, m) {
return [최대공약수(n, m), (n * m) / 최대공약수(n, m)];
}
'코딩 테스트' 카테고리의 다른 글
[프로그래머스 Level 0] 유한소수 판별하기 (0) | 2025.04.05 |
---|---|
[프로그래머스 Level 0] 옹알이 (1) (0) | 2025.04.05 |
[프로그래머스 Level 0] 저주의 숫자 3 (0) | 2025.04.04 |
[프로그래머스 Level 1] 같은 숫자는 싫어 (0) | 2025.04.03 |
[프로그래머스 Level 1] 문자열 다루기 기본 (0) | 2025.04.03 |