๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript) ] 05 - ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ

by YWTechIT 2021. 8. 10.
728x90

๐Ÿ“ 05 - ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ

๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์  ๋ฐ, ๋ฐฐ์—ด๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ๋Š” Math.min ํ•จ์ˆ˜์— ๋‹จ๋…์œผ๋กœ ๋ฐฐ์—ด์„ ๋„˜๊ฒจ์ฃผ๋ฉด NaN๊ฐ’์ด ๋ฐ˜ํ™˜๋˜๋ฏ€๋กœ spreadOperator(...)๋ฅผ ์‚ฌ์šฉํ•ด์„œ iterableํ•œ ๊ฐ’ ์ค‘์—์„œ Math.min์„ ๊ตฌํ•˜๊ฑฐ๋‚˜ apply ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋งˆ์ง€๋ง‰ ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ดˆ๊ธฐ min๊ฐ’์„ JS์—์„œ ์•ˆ์ •์ ์œผ๋กœ ๋†’์€ ๊ฐ’์ธ MAX_SAFE_INTEGER์œผ๋กœ ํ• ๋‹นํ•˜๊ณ  ๊ทธ๋ณด๋‹ค ๋‚ฎ์€ ๊ฐ’์„ ๋ณด๋ฉด ๋‚ฎ์€ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.

console.log(solution([5, 3, 7, 11, 2, 15, 17]));

// apply
function solution(...arr){
    return Math.min.apply(null, arr);
}

// Math.min
function solution(arr){
    console.log(Math.min(...arr));
}

// ๋ฐ˜๋ณต๋ฌธ
function solution(...arr) {
  let min = Number.MAX_SAFE_INTEGER;

  arr.forEach((element) => {
    if (element < min) {
      min = element;
    }
  });

  return min;
}
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€