백준 16198 에너지 모으기

bkboy·2022년 6월 16일
0

백준 중급

목록 보기
9/31

문제

제한 사항

입출력 예

풀이

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const sol = (input) => {
  const n = +input.shift();
  const energy = input[0].split(" ").map(Number);

  let max = Number.MIN_SAFE_INTEGER;

  const dfs = (arr, sum) => {
    if (arr.length === 2) {
      max = Math.max(max, sum);
    } else {
      for (let i = 1; i < arr.length - 1; i++) {
        // i번째만 빠졌음
        const restArr = [...arr.slice(0, i), ...arr.slice(i + 1)];
        dfs(restArr, sum + arr[i - 1] * arr[i + 1]);
      }
    }
  };
  dfs(energy, 0);
  return max;
};

console.log(sol(input));
profile
음악하는 개발자

0개의 댓글