[๐Ÿ™์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  - largestProductOfThree

dsfasdยท2022๋…„ 10์›” 20์ผ
0

๋ฌธ์ œ

์ •์ˆ˜๋ฅผ ์š”์†Œ๋กœ ๊ฐ–๋Š” ๋ฐฐ์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ 3๊ฐœ์˜ ์š”์†Œ๋ฅผ ๊ณฑํ•ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€๊ฐ’์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ

์ธ์ž 1 : arr
number ํƒ€์ž…์„ ์š”์†Œ๋กœ ๊ฐ–๋Š” ์ž„์˜์˜ ๋ฐฐ์—ด

์ถœ๋ ฅ

number ํƒ€์ž…์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


์ฝ”๋“œ

const largestProductOfThree = function (arr) {

  const mulArr =[] 

  for(let i=0;i<arr.length;i++){
    for(let j=i+1;j<arr.length;j++){
      for(let k=j+1;k<arr.length;k++){
        mulArr.push(arr[i]*arr[j]*arr[k])
      }
    }
  }
 
  return Math.max.apply(null,mulArr)
  
};

ํ’€์ด

3๊ฐœ์˜ ๊ณฑ์ด ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ 3์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์„œ ๋ชจ๋“  ๊ณฑ๋“ค์„ ๋ฐฐ์—ด์•ˆ์— ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ž‘์„ฑํ–ˆ๋‹ค
๋งˆ์ง€๋ง‰์— return ์œผ๋กœ Math.max()๊ฐ€ NaN์œผ๋กœ ๋– ์„œ ์• ๋จน์—ˆ๋Š”๋ฐ
์•Œ๊ณ ๋ณด๋‹ˆ Math.max()์•ˆ์— ๋ฐฐ์—ด ๊ฐ์ฒด๋ฅผ ๋„ฃ์œผ๋ฉด NaN์—๋Ÿฌ ๊ฐ€ ๋‚œ๋‹ค๊ณ  ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ Math.max.apply(null,๋ฐฐ์—ด) ์ƒํƒœ๋กœ ์ ์–ด์ค˜์•ผ ํ•œ๋‹ค.
apply() ๋ฉ”์„œ๋“œ๋Š” ์ฃผ์–ด์ง„ this ๊ฐ’๊ณผ ๋ฐฐ์—ด (๋˜๋Š” ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด) ๋กœ ์ œ๊ณต๋˜๋Š” arguments ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.


[์ฐธ๊ณ ]

https://ju-won.tistory.com/30
https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-Call-Bind-Apply


๋ ˆํผ๋Ÿฐ์Šค

const largestProductOfThree = function (arr) {
  const sorted = arr.slice().sort((a, b) => a - b);
  const len = arr.length;
  const candi1 = sorted[len - 1] * sorted[len - 2] * sorted[len - 3];
  const candi2 = sorted[len - 1] * sorted[0] * sorted[1];
  return Math.max(candi1, candi2);
};

์ฝ”๋“œ์Šคํ…Œ์ด์ธ ๋Š” ์ •๋‹ต์ฐธ๊ณ ์šฉ์œผ๋กœ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฃผ๋Š”๋ฐ..^^ !

profile
๊ธฐ๋ก์„ ์ •๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„!

0๊ฐœ์˜ ๋Œ“๊ธ€