[Javascript] section 3 daily coding 21, 22, 23 RECAP

KoEunseo·2022년 10월 2일
0

Daily_Coding

목록 보기
15/21

21

const largestProductOfThree = function (arr) {
  // 1.가장 큰 수를 뽑는다.
  // 2.남은 수 중에서 두개를 뽑아 곱한것 중 가장 큰 수를 뽑는다.
  // 1번 숫자와 2번 숫자를 곱한다.
  let max = Math.max(...arr); //펼쳐서 넣어주어야 값이 나온다.
  arr.splice(arr.indexOf(max), 1);
  let result = arr[0] * arr[1] * max;
  for(let i = 0; i < arr.length; i++){
    for(let j = i+1; j < arr.length; j++){
      if(arr[i] * arr[j] * max > result) { //양수 + 음수 조합일때
        result = arr[i] * arr[j] * max;
      }
    }
  }
  return result;
};

22

function fibonacci(n) {
  let memo = [0, 1];
  const recur = (n) => {
    if (memo[n] !== undefined) return memo[n];
    memo[n] = recur(n - 1) + recur(n - 2);
    return memo[n];
  }
  return recur(n);
}

23

let bubbleSort = function (arr) {
  for (let i = arr.length; i > 0; i--) {
    noSwaps = true;
    for (let j = 0; j < i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        let temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = temp;
        noSwaps = false;
      }
    }
    if(noSwaps) break;
  }
  return arr;
};
profile
주니어 플러터 개발자의 고군분투기

0개의 댓글