์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์
๋ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ ์์ ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ๋ณด์ธ์. ๋ฐฐ์ด์ ๋งจ ์์ ์ต๋๊ณต์ฝ์, ๊ทธ๋ค์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฃ์ด ๋ฐํํ๋ฉด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ ์ 3, 12์ ์ต๋๊ณต์ฝ์๋ 3, ์ต์๊ณต๋ฐฐ์๋ 12์ด๋ฏ๋ก solution(3, 12)๋ [3, 12]๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค.
์ ํ ์กฐ๊ฑด
* ๋ ์๋ 1์ด์ 1000000์ดํ์ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
์
์ถ๋ ฅ ์ #1
* ์์ ์ค๋ช
๊ณผ ๊ฐ์ต๋๋ค.
์
์ถ๋ ฅ ์ #2
* ์์ฐ์ 2์ 5์ ์ต๋๊ณต์ฝ์๋ 1, ์ต์๊ณต๋ฐฐ์๋ 10์ด๋ฏ๋ก [1, 10]์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
n | m | result |
---|---|---|
3 | 12 | [3,12] |
2 | 5 | [1,10] |
๋ฌธ์ ํ์ด
const min์ Math.min์ผ๋ก n,m์ ์ต์๊ฐ์ ์ ์ฅ, for๋ฌธ๊ณผ if๋ฌธ์ ์ด์ฉํ์ฌ ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ ์ ์๋ค.
function solution(n, m) {
const min = Math.min(n, m);
let common_max = 1;
for(let i = min; i > 0; i--){
if(n % i === 0 && m % i === 0){
common_max = i;
break;
}
}
return [common_max, common_max * (n / common_max)* (m / common_max)];
}
๋ค๋ฅธ ํ์ด ๋ฐฉ์
for๋ฌธ ํ๋๋ก ์ด๋ ๊ฒ ๊ฐ๋จํ๊ฒ 3์ค๋ก ํ์ดํ๋ ๋ฐฉ์๋ ์๋ค.
function gcdlcm(a, b) {
var r;
for(var ab= a*b;r = a % b;a = b, b = r){}
return [b, ab/b];
}
๋๊ธ