티스토리 뷰

https://www.acmicpc.net/problem/10819

 

10819번: 차이를 최대로

첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.

www.acmicpc.net

const [ N, ...nums ] = require('fs').readFileSync('./dev/stdin').toString().trim().split(/\s+/).map(v => +v);


let max = 0;
function diffMax(arr,visited){
  if(arr.length==N){
    let sum = 0;
  
    for(let i = 0; i<N-1; i++){
      sum+=Math.abs(arr[i]-arr[i+1])
    }
    if(sum>max) max = sum;
    return;
  }else{
    for(let i = 0; i<N; i++){
      if(!(visited&(1<<i))){
        arr.push(nums[i]);
        diffMax(arr,visited|(1<<i));
        arr.pop();
      }
    }
  }
}


  diffMax([],0);


console.log(max)
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함