7๊ฐ ์๊ฐ ์ฃผ์ด์ง๋ฉด ๊ทธ ์ซ์ ์ค ๊ฐ์ฅ ์์ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
์ ๋ ฅ์ค๋ช | ์ฒซ ๋ฒ์งธ ์ค์ 7๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ์ค๋ช | ์ฒซ ๋ฒ์งธ ์ค์ ๊ฐ์ฅ ์์ ๊ฐ์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์ | 5 3 7 11 2 15 17
์ถ๋ ฅ ์์ | 2
[ํ์ด 1]
Math.min.apply()
1. ํ์ค๋ด์ฅ๊ฐ์ฒด์ธ Math ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. Math.min() : ์ ๋ฌ๋ฐ์ ์ธ์ ์ค์์ ๊ฐ์ฅ ์์ ์๋ฅผ ๋ฐํํ๋ค.
2. ๋ฐฐ์ด์ ์ธ์๋ก ์ ๋ฌ ๋ฐ์ ๋ฐฐ์ด์ ์์ ์ค์์ ์ต์๊ฐ์ ๊ตฌํ๋ค -> apply ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
function minValue(arr){
let answer = Math.min.apply(null, arr);
retrun answer;
}
let arr = [5, 3, 7, 11, 2, 15, 17]
console.log(minValue(arr));
[ํ์ด 2]
Math.min()
function minValue(arr){
let answer=Math.min(...arr);
retrun answer;
}
let arr = [5, 3, 7, 11, 2, 15, 17]
console.log(minValue(arr));
... : ์ ๊ฐ์ฐ์ฐ์spread operator - ๋ฐฐ์ด์ ํผ์ณ์ค๋ค.
arr[0], arr[1], arr[2] ์ด๋ฐ์์ผ๋ก ๊ณ์ ํผ์ณ์ค์ ์ธ์๋ก ๋ค์ด๊ฐ์์๊ฒ ํผ์ณ์ค๋ค.
[ํ์ด 3]
Number๊ฐ์ฒด Number.MAX_SAFE_INTEGER
function minValue(arr){
let answer, min=Number.MAX_SAFE_INTEGER;
for(let i=0; i<arr.length; i++) {
if(arr[i]<min) min=arr[i];
anser = min;
retrun answer;
}
let arr = [5, 3, 7, 11, 2, 15, 17]
console.log(minValue(arr));
[์ฌ์ฉํ ๊ฐ๋ ]
Math ๋ฉ์๋๋ ์ํ์ ์ธ ์์์ ํจ์๋ฅผ ์ํ property์ ์์ฑ์ ์ ๊ณตํ๋ค.
Math.max()
์ ๋ฌ๋ฐ์ ์ธ์ ์ค์์ ๊ฐ์ฅ ํฐ์๋ฅผ ๋ฐํ
๋ฐฐ์ด์ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ๋ฐฐ์ด์ ์์ ์ค์์ ์ต๋๊ฐ์ ๊ตฌํ๋ ค๋ฉด Function.prototype.apply ๋ฉ์๋ ๋๋ ์คํ๋ ๋ ๋ฌธ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค.
Math.max.apply(null, [1, 2, 3]); // 3
Math.min()
์ ๋ฌ๋ฐ์ ์ธ์ ์ค์์ ๊ฐ์ฅ ์์ ์๋ฅผ ๋ฐํ.
์ธ์๊ฐ ์ ๋ฌ๋์ง ์์ผ๋ฉด Infinity ๋ฐํ
๋ฐฐ์ด์ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ๋ฐฐ์ด์ ์์ ์ค์์ ์ต์๊ฐ์ ๊ตฌํ๋ ค๋ฉด Function.prototype.apply ๋ฉ์๋ ๋๋ ์คํ๋ ๋ ๋ฌธ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค.
Math.min.apply(null, [1, 2, 3]); // 1
apply ๋ฉ์๋
์ฒซ ๋ฒ์งธ ์ธ์๋ก ๊ฐ์ฒด๋ฅผ ๋๊ฒจ์ผํ๋ค. this์๋ค๊ฐ ๊ฐ์ฒด๋ฅผ ๋ฃ์ด์ผํ๋ฏ๋ก null์ ๋ฃ์ด์ค๋ค.
Math.min.apply(null, arr);
Number.MAX_SAFE_INTEGER
์๋ฐ์คํฌ๋ฆฝํธ์์ ์์ ํ๊ฒ ํํํ ์ ์๋ ๊ฐ์ฅ ํฐ ์ ์๊ฐ
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์๊ณ ๋ฆฌ์ฆ | 10๋ถ์ (0) | 2021.04.14 |
---|---|
JS์๊ณ ๋ฆฌ์ฆ | ํ์ (0) | 2021.04.13 |
JS์๊ณ ๋ฆฌ์ฆ | 1๋ถํฐ N๊น์ง์ ํฉ (0) | 2021.04.11 |
JS์๊ณ ๋ฆฌ์ฆ | ์ฐํ ๊ฐ์ (0) | 2021.04.11 |
JS์๊ณ ๋ฆฌ์ฆ | ์ผ๊ฐํ ํ๋ณํ๊ธฐ (0) | 2021.04.10 |