프로그래머스/구현
[구현] 프로그래머스 '최대공약수와 최소공배수' - js
bbeyak
2022. 9. 19. 21:49
반응형
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12940
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 설명
최대공약수:
공약수를 넣을 빈 배열 a를 선언해준다.
1부터 n까지, n과 m 둘 다 나누었을 때 나머지가 0이 되는 n과 m의 공약수를 찾아 a에 push한다.
최대공약수는 공약수 중 가장 큰 수를 말하므로, a[a.length-1]값을 리턴할 배열인 answer에 push해준다.
최소공배수:
문제에 두 수는 1이상 1000000이하의 자연수라고 나와있으므로,
m부터 1,000,000까지 n과 m 둘 다 나누었을 때 나머지가 0이되는 첫번째 j가 n과 m의 최소공배수를이므로,
조건을 만족하는 j가 나오면 answer에 push해준 후, break를 통해 반복문을 빠져나온다.
3. 코드
function solution(n, m) {
var answer = [];
//최대공약수
let a = [];
for(let i = 1;i <= n;i++){
if(n % i == 0 && m % i == 0){
a.push(i);
}
}
answer.push(a[a.length-1])
//최소공배수
for(let j = m;j <= 1000000;j++){
if(j % n == 0 && j % m == 0){
answer.push(j);
break;
}
}
return answer;
}
반응형