백준/ Silver 1 문제 , 백준 Node.js 자바스크립트 11497 , 통나무 건너뛰기 [정렬]
Check Point ! ( 해당사항 ✓체크 )
1. 막힘 없이 수월하게 풀린 문제인가?
2. 1시간이내로 풀렸던 문제인가?
3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
4. 시간을 써도 도무지 풀 수 없는 문제인가?
5. 솔루션을 찾아봤는가?
-------------------------------------------------------------------------------------------
난이도 체감
1. 최상
2. 상
3. 중
4. 하
<이해도>
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함
<덧붙일 말>
단순 배열 정렬하고 차이값 계산하는 문제.
문제 출처
https://www.acmicpc.net/problem/11497
풀이
우선 입력 받은 배열을 내림차순으로 정렬한다.
이후 새 빈 배열을 만든 뒤
내림차순으로 정렬된 배열을 차례로 새 배열에 담아준다.
이때, 담는 위치를 왼쪽 오른쪽 번갈아 가면서 넣어주면 되는데, reverse 를 사용하여 계속해서 서로 다른 방향으로 번갈아가며 값이 담기게 넣어준다.
이렇게 되면 각 요소들의 차이를 최소한으로 만들수 있고, 이 새로 만들어진 배열의 각 요소 차이 중에서 가장 큰 차이값을 출력해주면된다.
정답
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
const T = Number(input[0]);
for (let i = 1; i < T + 1; i++) {
let arr = input[2 * i].split(" ").map(Number);
arr.sort((a, b) => b - a);
let check = [];
for (let i of arr) {
check.push(i);
check.reverse();
}
let MAX = 0;
check.map((a, b) => {
if (Math.abs(a - check[b + 1]) > MAX) MAX = Math.abs(a - check[b + 1]);
});
console.log(MAX);
}
반응형
'알고리즘 공부 > 백준 - 자바스크립트' 카테고리의 다른 글
백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 2470 , 두 용액 [투포인터] (0) | 2022.09.27 |
---|---|
백준/ Silver 3 문제 , 백준 Node.js 자바스크립트 2548 , 대표 자연수 [정렬] (1) | 2022.09.26 |
백준/ Silver 4 문제 , 백준 Node.js 자바스크립트 1835 , 카드 [deque] (0) | 2022.09.22 |
백준/ Silver 2 문제 , 백준 Node.js 자바스크립트 15990 , 1, 2, 3 더하기 5 [dp] (0) | 2022.09.21 |
백준/ Silver 2 문제 , 백준 Node.js 자바스크립트 11048 , 이동하기 [dp] (0) | 2022.09.20 |