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

[ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript) ] 17 - ํฐ ์ˆ˜ ์ถœ๋ ฅํ•˜๊ธฐ

by YWTechIT 2021. 8. 13.
728x90

๐Ÿ“ 17 - ํฐ ์ˆ˜ ์ถœ๋ ฅํ•˜๊ธฐ

์ด๋ฒˆ ์„น์…˜์€ 1, 2์ฐจ์› ํƒ์ƒ‰์„ ํ•ด๋ณด๋Š” ์„น์…˜์ด๋‹ค.

 

์ž์‹ ์˜ ๋ฐ”๋กœ ์•ž์˜ ๊ฐ’๋งŒ ๋น„๊ตํ•œ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•ด์„œ reduce ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. reduceํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ๋„˜๊ฒจ์ค„ acc, cur์—์„œ acc๋ฅผ ์ด์ „ ๋‹จ๊ณ„์˜ cur๋กœ returnํ•ด์ฃผ๋ฉด ๋ฐ”๋กœ ์ด์ „ index์™€ ๋น„๊ตํ•˜๊ฒŒ ๋œ๋‹ค. (๋งจ ์ฒ˜์Œ์—๋Š” 0์„ ๋„˜๊ฒจ์ฃผ์ž.)

 

reduce ํ•จ์ˆ˜ ์ด์™ธ์—๋„ for๋ฌธ์œผ๋กœ ํ’€ ๋•Œ ๊ทธ๋‹ค์ง€ ์–ด๋ ต์ง€ ์•Š์•˜๋Š”๋ฐ, ๋งจ ์•ž์˜ ๊ฐ’์„ ๋น„๊ตํ•  ๋•Œ๋Š” ์ด์ „ ๊ฐ’์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— 0์„ ์ถ”๊ฐ€ํ•ด์คฌ๋‹ค. (ํ˜น์€ Number.MIN_SAFE_INTEGER์„ ํ• ๋‹นํ•ด์ค˜๋„ ๋œ๋‹ค.)

 

console.log(solution([7, 3, 9, 5, 6, 12]));

// reduce
function solution(arr) {
  let answer = [];
  arr.reduce((acc, cur) => {
    if (cur > acc) {
      answer.push(cur);
    }
    return cur;
  }, 0);

  return answer.join(' ');
}

// for
function solution(arr){
    let answer = [];
    arr = [0, ...arr];

    for (let i=1; i < arr.length; i++){
        if (arr[i] > arr[i-1]){
            answer.push(arr[i])
        }
    }
    return answer.join(' ');
}

// for2
function solution(arr){
    let answer = [];
    answer.push(arr[0]);

    for (let i=1; i < arr.length; i++){
        if (arr[i] > arr[i-1]){
            answer.push(arr[i])
        }
    }
    return answer.join(' ');
}

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€