function solution(n, m) {
let answer = [];
// 최대공약수
for (let i=n; i<=n; i--) {
if (n%i == 0 && m%i == 0) {
answer.push(i); break;
}
}
// 최소공배수
for (let j=1; j<=n*m; j++) {
if (j%n == 0 && j%m == 0) {
answer.push(j); break;
}
}
return answer;
}
우선 최대공약수는 n,m 중 작은 수만큼만 확인하면 돼서, i의 크기를 둘중 아무거나로 지정했다.
n과 m의 차가 어마무시하다면 시간이 오래 걸리기 때문에 비교까지 해준 다음에 더 작은 수로 정확히 넣었을듯
그리고 최대를 찾는 거기 때문에 하나씩 빼주는 형태로 반복했고,
n과 m의 공통된 약수일 때 break를 걸어 가장 큰 약수 하나만 추출하도록 했다.
최소공배수도 마찬가지.
최소니까 1부터 시작했고, 최대치로 커봤자 n*m이니까 조건을 그렇게 걸었다.
if 조건문에 부합하면 break 걸어서 제일 작은 공배수 추출
'코딩 테스트 > test_javaScript' 카테고리의 다른 글
[코딩테스트/javaScript]이상한 문자 만들기 (1) | 2025.01.03 |
---|---|
[코딩테스트/javaScript] 3진법 뒤집기 (0) | 2025.01.02 |
[코딩테스트/javaScript] 직사각형 별 찍기 (0) | 2024.12.31 |
[코딩테스트/javaScript] 행렬의 덧셈 (0) | 2024.12.30 |
[코딩테스트/javaScript] 문자열 다루기 기본 (0) | 2024.12.29 |