반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- TCP
- Nestjs
- 타입스크립트
- 프로그래머스 레벨 2
- socket
- type challenge
- 그래프
- 가천대
- 백준
- Crawling
- 알고리즘
- HTTP 완벽 가이드
- 소켓
- Node.js
- HTTP
- typescript
- 수학
- Algorithm
- 타입 챌린지
- 레벨 1
- javascript
- dp
- BFS
- 자바스크립트
- 크롤링
- 문자열
- ip
- dfs
- 프로그래머스
- 쉬운 문제
Archives
- Today
- Total
kakasoo
[node.js] 차이를 최대로 ( 백준 10819번 ) 본문
반응형
// 백준 10819번 차이를 최대로를 풀었습니다.
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.on("line", (line) => {
if (isNaN(line)) {
const permutation = [...permutations(line.split(" ").map(Number))];
const answer = [];
for (let i = 0; i < permutation.length; i++) {
let sum = 0;
for (let j = 0; j < permutation[i].length - 1; j++) {
sum += Math.abs(permutation[i][j] - permutation[i][j + 1]);
}
answer.push(sum);
}
console.log(Math.max(...answer));
}
});
/**
*
* @param {numbers[]} elements
*/
function* permutations(elements) {
if (elements.length === 1) {
yield elements;
} else {
const [first, ...rest] = elements;
for (const a of permutations(rest)) {
for (let i = 0; i < elements.length; i++) {
const start = a.slice(i);
const ended = a.slice(0, i);
yield [...start, first, ...ended];
}
}
}
}
모든 순열을 구한 다음, 주어진 공식을 대입하여 최댓값을 찾으면 된다.
이 문제 바로 직전에 푼 문제는 모든 순열을 구하는 것이기 때문에, 참고하면 좋을 듯 하다.
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
[node.js] 외판원 순회2 ( 백준 10971번 ) (0) | 2021.07.31 |
---|---|
[node.js] 단어 수학 ( 백준 1339번) (0) | 2021.07.31 |
[node.js] 모든 순열 ( 백준 10974번 ) (0) | 2021.07.30 |
[node.js] 수 이어 쓰기 1 ( 백준 1748번 ) (0) | 2021.07.29 |
[node.js] 리모컨 ( 백준 1107번 ) (0) | 2021.07.29 |