function solution(n, m) {
let answer = [];
let min = Math.min(n, m);
let max = Math.max(n, m);
if (max % min === 0) {
answer.push(min);
answer.push(max);
} else {
for (let i = Math.floor(min / 2); i >= 1; i--) {
if (min % i === 0 && max % i === 0) {
answer.push(i);
break;
}
}
for (let j = 2; j < max; j++) {
if ((max * j) % min === 0) {
answer.push(max * j);
break;
}
}
}
return answer;
}
์ง์ง ๊ฐ๋จํ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋๋ฐ... ๋ด๊ฐ ์๊ฐํ ๊ฒ๋ณด๋ค ๋ด ์ฝ๋๊ฐ ์ง์ง ๋๋ฌด ์ง์ ๋ถํ๋ค๊ณ ๋๊ผ๊ณ ๋ด์ฅํจ์๋ฅผ ๋๋ฌด ์๋ฌด๋ ์ง ์๊ฒ ์ฌ์ฉํ ์ฝ๋๊ฐ ๋์๋ค.
์ด์ ๊ทธ๋ผ ๋ค๋ฅธ ๋ถ๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๊ณต๋ถํด๋ณด์ @.@ (๋ฐ์ฑ ๋ฐ ํ๊ณ ๊ทธ๋ฆฌ๊ณ ๋ฐฐ์์ ์๊ฐใ
ใ
ใ
)
- ์ฌ๊ท ์ฌ์ฉ -> ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ ์ฌ์ฉ(์ฐธ๊ณ )
function greatestCommonDivisor(a, b) {return b ? greatestCommonDivisor(b, a % b) : Math.abs(a);}
function leastCommonMultipleOfTwo(a, b) {return (a * b) / greatestCommonDivisor(a, b);} // ๋ ์ ๊ณฑ / ์ต๋๊ณต์ฝ์
function gcdlcm(a, b) {
return [greatestCommonDivisor(a, b),leastCommonMultipleOfTwo(a, b)];
}
- min, max๋ฅผ Math ๋ด์ฅ ์์ด ๊ฑฐ ๊ธฐ์ตํ๊ธฐ ์ํ ์ฝ๋
const gcdlcm = (a, b) => {
const [ min, max ] = a < b ? [ a, b ] : [ b, a ];
let gcd = min;
do {
if(min % gcd === 0 && max % gcd === 0) break;
gcd--;
} while (gcd > 1);
return [gcd, a * b / gcd];
}
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์ฐ์ต๋ฌธ์ - ์ ์ ์ ๊ณฑ๊ทผ ํ๋ณ (0) | 2022.06.23 |
---|---|
[JS] ์ฐ์ต๋ฌธ์ - ์ ์ผ ์์ ์ ์ ๊ฑฐํ๊ธฐ (0) | 2022.06.23 |
[JS]์ฐ์ต๋ฌธ์ - ์ฝ๋ผ์ธ ์ถ์ธก (0) | 2022.06.22 |
[JS]์ฐ์ต๋ฌธ์ -ํธ๋ํฐ ๋ฒํธ ๊ฐ๋ฆฌ๊ธฐ (0) | 2022.06.21 |
[JS]์ฐ์ต๋ฌธ์ -ํ๋ ฌ์ ๋ง์ (0) | 2022.06.21 |