-
문제
https://www.acmicpc.net/problem/10819
10819번: 차이를 최대로
첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.
www.acmicpc.net
How to Solve ?
특정한 규칙을 찾기에는, 어떤 경우에 최대 값이 나오는지 알기가 어려웠다. 따라서 주어진 길이로 만들 수 있는 모든 순열(중복X, 순서O)을 만들어서 비교하면 끝난다.
function dfs(cnt) { if (cnt === n) { permu_arr.push(output.join(" ")); return; } for (let i = 0; i < n; i++) { if (visited[i]) continue; visited[i] = 1; output.push(nums[i]); dfs(cnt + 1); output.pop(); visited[i] = 0; } } function solve() { let answer = -Infinity; for (let i = 0; i < permu_arr.length; i++) { let sum = 0; permu_arr[i] = permu_arr[i].split(" "); for (let j = 1; j < n; j++) { sum += Math.abs(permu_arr[i][j] - permu_arr[i][j - 1]); } answer < sum ? (answer = sum) : answer; } console.log(answer); } const n = 6; const output = []; const permu_arr = []; const nums = [20, 1, 15, 8, 4, 10]; const visited = Array(n).fill(0); dfs(0); solve();
'PS > 백준' 카테고리의 다른 글
[백준_20365] 블로그2 ( 그리디 - 자바스크립트 ) (0) 2021.06.17 [백준_10971] 외판원 순회2 ( 브루트포스 - 완전탐색 ) (0) 2021.06.16 [백준_10972] 다음 순열 ( 브루트포스 - 자바스크립트 ) (0) 2021.06.16 [백준_1107] 리모컨 ( 브루트포스 - 자바스크립트 ) (0) 2021.06.15 [백준_3085] 사탕게임 ( 브루트포스 - 자바스크립트 ) (0) 2021.06.15 댓글