Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - N๊ฐ์ ์ต์๊ณต๋ฐฐ์ ๋ณธ๋ฌธ
๐ ๋ฌธ์
๋ ์์ ์ต์๊ณต๋ฐฐ์(Least Common Multiple)๋ ์ ๋ ฅ๋ ๋ ์์ ๋ฐฐ์ ์ค ๊ณตํต์ด ๋๋ ๊ฐ์ฅ ์์ ์ซ์๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด 2์ 7์ ์ต์๊ณต๋ฐฐ์๋ 14๊ฐ ๋ฉ๋๋ค. ์ ์๋ฅผ ํ์ฅํด์, n๊ฐ์ ์์ ์ต์๊ณต๋ฐฐ์๋ n ๊ฐ์ ์๋ค์ ๋ฐฐ์ ์ค ๊ณตํต์ด ๋๋ ๊ฐ์ฅ ์์ ์ซ์๊ฐ ๋ฉ๋๋ค. n๊ฐ์ ์ซ์๋ฅผ ๋ด์ ๋ฐฐ์ด arr์ด ์ ๋ ฅ๋์์ ๋ ์ด ์๋ค์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ์ฃผ์ธ์.์ ํ ์ฌํญ
- arr์ ๊ธธ์ด 1์ด์, 15์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค.
- arr์ ์์๋ 100 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
๐ก ์์ด๋์ด
์ฒ์ ํ์ด๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ฌ์ฉํ์ง ์์์ ์ ๋ง์ ๋ง์ ๋ง ๋นํจ์จ์ ์ธ ์ฝ๋..
๋๋ฒ์งธ๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ด์ฉํด์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๊ณ , '์ต์๊ณต๋ฐฐ์ = (a * b) / ์ต๋๊ณต์ฝ์' ๋ผ๋ ์ ์ ์ด์ฉํ ํ์ด
โ๏ธ ํ์ด
1. while์ ์ฐ๊ณ , ๊ทธ๋๋ง๋ค for๋ฌธ์ ๋์์ผํ๋ ํ์ด..
๋น์ฐํ ์ต์๊ณต๋ฐฐ์๋ ๋ฐฐ์ด์์ ๊ฐ์ฅ ํฐ ์์ ๋ฐฐ์๋ผ๊ณ ์๊ฐํ๊ณ ๊ทธ ๊ฐ์ *2, *3 ํด์ฃผ๋ฉด์ ๋ฐฐ์ด ์์ ์์๋ค๋ก ๋๋ ์ง๋์ง ํ์ธ
function solution(arr) {
var answer = 0;
let max = arr[arr.length-1];
let returnValue = dividedReturn(arr, max);
while(returnValue === false){
returnValue = dividedReturn(arr, max);
max = max * 2;
}
answer = max / 2;
return answer;
}
function dividedReturn(arr, max) {
arr.sort((a,b)=>a-b);
let divided = true;
for(let i=0; i<arr.length-1; i++){
if(max % arr[i] !== 0) {
divided = false;
break;
}
}
return divided;
}
2. ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ ํ์ด
function solution(arr) {
let answer = 1;
for(let i of arr){
answer = minMulti(answer, i);
}
return answer;
}
function minMulti(a, b){ // ์ต์๊ณต๋ฐฐ์ ๊ตฌํ๊ธฐ
return (a*b) / gcd(a,b);
}
function gcd(a, b) { // ์ต๋๊ณต์ฝ์ ๊ตฌํ๊ธฐ
const remainder = a % b;
if (remainder === 0) return b;
return gcd(b, remainder);
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฉ๋ฆฌ๋ฐ๊ธฐ (0) | 2023.02.21 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ ํ์ ์๊ฐ์ด๋ (0) | 2023.02.21 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์์ ๋์งํ (0) | 2023.02.17 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๊ตฌ๋ช ๋ณดํธ (0) | 2023.02.17 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์นดํซ (0) | 2023.02.14 |