문제 설명
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
입출력 예
n | m | return |
3 | 12 | [3, 12] |
2 | 5 | [1, 10] |
나의 풀이
1
2
3
4
5
6
7
8
9
10
11
|
function solution(n, m) {
var answer = [];
for(let i=1; i<=m; i++){
if(n % i === 0 && m % i ===0){
answer.yaksu = i
}
}
answer.baesu = (n*m / answer.yaksu)
return [answer.yaksu, answer.baesu];
}
|
cs |
문제를 풀며 느낀 점
- m이 n보다 큰 수일경우 i =1부터 m까지 반복문을 진행하면서 만약에 n 과 m을 i로 나눴을 때 나머지 값이 0 이라면 answer.yaksu에 i를 할당하고 answer.baesu 즉 최소 공부수는 n * m 에서 최대 공약수로 나눈 값을 answer.baesu에 할당하였습니다. 그 후 return 해주었습니다.
'코딩 테스트 풀이 🛠' 카테고리의 다른 글
[프로그래머스] 행렬의 덧셈 (0) | 2023.01.22 |
---|---|
[프로그래머스] 3진법 뒤집기 (0) | 2023.01.21 |
[Leet Code - eazy] 1480. Running Sum of 1d Array (0) | 2023.01.21 |
[Leet Code - eazy] 2535. Difference Between Element Sum and Digit Sum of an Array (0) | 2023.01.21 |
[Leet Code - eazy] 2011. Final Value of Variable After Performing Operations (0) | 2023.01.21 |