๐ JavaScript/ํ๋ก๊ทธ๋๋จธ์ค
[JS] ์ฐ์ต๋ฌธ์ - N๊ฐ์ ์ต์๊ณต๋ฐฐ์
Jayden1116
2022. 7. 2. 13:13
function solution(arr) {
let max = Math.max(...arr);
let n = arr.length;
let count = 1;
while (arr.filter((num) => (max * count) % num === 0).length < n) {
count++;
}
let answer = max * count;
return answer;
}
์ฝ๋ฉํ ์คํธ ์ฐ์ต - N๊ฐ์ ์ต์๊ณต๋ฐฐ์
๋ ์์ ์ต์๊ณต๋ฐฐ์(Least Common Multiple)๋ ์ ๋ ฅ๋ ๋ ์์ ๋ฐฐ์ ์ค ๊ณตํต์ด ๋๋ ๊ฐ์ฅ ์์ ์ซ์๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด 2์ 7์ ์ต์๊ณต๋ฐฐ์๋ 14๊ฐ ๋ฉ๋๋ค. ์ ์๋ฅผ ํ์ฅํด์, n๊ฐ์ ์์ ์ต์๊ณต๋ฐฐ
programmers.co.kr
- ๋ฐฐ์ด์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ฐฐ์๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉด์ ๊ทธ ์ต์๊ฐ์ ์ฐพ๋ ๋ฐฉํฅ
- ๋ฐฐ์ด์ ๊ฐ์ฅ ํฐ ๊ฐ์ max๋ก ์ ์ธ ๋ฐ ํ ๋นํ๊ณ max์ ๊ณฑํ count๋ฅผ 1๋ก ์ ์ธ ๋ฐ ํ ๋นํฉ๋๋ค.
- while๋ฌธ์ ํตํด ๋ฐฐ์ด ๋ด์ ๊ฐ๋ค์ ํตํด max * count๋ฅผ ๋๋์์ ๋ ๋๋จธ์ง๊ฐ 0์ธ ๋ฐฐ์ด์ filterํ๊ณ ๊ทธ ๊ธธ์ด๊ฐ n๋ณด๋ค ์์ผ๋ฉด ๋ฐ๋ณตํฉ๋๋ค.
- count๋ 1์ฉ ์ฆ๊ฐํ๋ฉฐ while๋ฌธ์ ๋ฐ๋ณตํฉ๋๋ค.
- ๋ง์ฝ filterํ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ n๊ณผ ๊ฐ๋ค๋ฉด, ๊ทธ ๋์ max * count๊ฐ ๋ฐฐ์ด ๋ด ๋ชจ๋ ์์ ๋ํ ์ต์๊ณต๋ฐฐ์๊ฐ ๋๋ฉฐ ์ด๋ฅผ returnํฉ๋๋ค.
๋๋ฆ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ ๋ คํด์ ํ์ด๋ณด๋ ค๊ณ ๋
ธ๋ ฅํ๋๋ฐ, ๊ทธ๊ฒ ์ฝ์ง๋ ์์๋ฏํ๋ค.
๊ทธ๋๋ ์ด์ level2๋ฅผ ํธ๋๋งํผ ์ผ๋จ ๊ตฌํ ํ์ ๊ธฐ์กด ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๋ ๊ณผ์ ๋ ์ฐ์ตํด๋ณด๋ฉด์ ์งํํด์ผ๊ฒ ๋ค. :)