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๋ฅผ ํธ๋๋งํผ ์ผ๋จ ๊ตฌํ ํ์ ๊ธฐ์กด ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๋ ๊ณผ์ ๋ ์ฐ์ตํด๋ณด๋ฉด์ ์งํํด์ผ๊ฒ ๋ค. :)
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์ฐ์ต๋ฌธ์ - ํผ๋ณด๋์น ์ (0) | 2022.07.03 |
---|---|
[JS] ์ฐ์ต๋ฌธ์ - JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ (0) | 2022.07.03 |
[JS] ์นด์นด์ค2022 - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (0) | 2022.07.01 |
[JS] 2021์นด์นด์ค - ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (0) | 2022.07.01 |
[JS] 2021์นด์นด์ค - ์ ๊ท ์์ด๋ ์ถ์ฒ (0) | 2022.07.01 |