๐Ÿ’› 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

 

  1. ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์˜ ๋ฐฐ์ˆ˜๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉด์„œ ๊ทธ ์ตœ์†Œ๊ฐ’์„ ์ฐพ๋Š” ๋ฐฉํ–ฅ
  2. ๋ฐฐ์—ด์˜ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ max๋กœ ์„ ์–ธ ๋ฐ ํ• ๋‹นํ•˜๊ณ  max์— ๊ณฑํ•  count๋ฅผ 1๋กœ ์„ ์–ธ ๋ฐ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
  3. while๋ฌธ์„ ํ†ตํ•ด ๋ฐฐ์—ด ๋‚ด์˜ ๊ฐ’๋“ค์„ ํ†ตํ•ด max * count๋ฅผ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ ๋ฐฐ์—ด์„ filterํ•˜๊ณ  ๊ทธ ๊ธธ์ด๊ฐ€ n๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
  4. count๋Š” 1์”ฉ ์ฆ๊ฐ€ํ•˜๋ฉฐ while๋ฌธ์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
  5. ๋งŒ์•ฝ filterํ•œ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ n๊ณผ ๊ฐ™๋‹ค๋ฉด, ๊ทธ ๋•Œ์˜ max * count๊ฐ€ ๋ฐฐ์—ด ๋‚ด ๋ชจ๋“  ์ˆ˜์— ๋Œ€ํ•œ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋ฉฐ ์ด๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

 

๋‚˜๋ฆ„ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ ๋ คํ•ด์„œ ํ’€์–ด๋ณด๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๋Š”๋ฐ, ๊ทธ๊ฒŒ ์‰ฝ์ง€๋Š” ์•Š์€๋“ฏํ•˜๋‹ค.
๊ทธ๋ž˜๋„ ์ด์ œ level2๋ฅผ ํ‘ธ๋Š”๋งŒํผ ์ผ๋‹จ ๊ตฌํ˜„ ํ›„์— ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ณผ์ •๋„ ์—ฐ์Šตํ•ด๋ณด๋ฉด์„œ ์ง„ํ–‰ํ•ด์•ผ๊ฒ ๋‹ค. :)