백준/ Silver 3 문제 , 백준 Node.js 자바스크립트 2548 , 대표 자연수 [정렬]
Check Point ! ( 해당사항 ✓체크 )
1. 막힘 없이 수월하게 풀린 문제인가?
2. 1시간이내로 풀렸던 문제인가?
3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
4. 시간을 써도 도무지 풀 수 없는 문제인가?
5. 솔루션을 찾아봤는가?
-------------------------------------------------------------------------------------------
난이도 체감
1. 최상
2. 상
3. 중
4. 하
<이해도>
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함
<덧붙일 말>
정렬후 중간 인덱스 +1 -1 범위내의 숫자만 확인해주었다.
문제 출처
https://www.acmicpc.net/problem/2548
풀이
for 문 내의 조건중 MIN >= tmp 부분에서 등호를 붙여줘야지 같은 값들중에서의 최솟값을 도출해 낼 수 있으니 참고하자
정답
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
const T = Number(input[0]);
let nums = input[1]
.split(" ")
.map(Number)
.sort((a, b) => a - b);
let [center, MIN, Idx] = [parseInt(nums.length / 2), Infinity, 0];
for (let i = 1; i >= -1; i--) {
let [tmp, s] = [0, nums[i + center]];
for (let j of nums) tmp += Math.abs(s - j);
if (MIN >= tmp) [MIN, Idx] = [tmp, i + center];
}
console.log(nums[Idx]);
반응형
'알고리즘 공부 > 백준 - 자바스크립트' 카테고리의 다른 글
백준/ Silver 3 문제 , 백준 Node.js 자바스크립트 10025 , 게으른 백곰 (1) | 2022.09.29 |
---|---|
백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 2470 , 두 용액 [투포인터] (0) | 2022.09.27 |
백준/ Silver 1 문제 , 백준 Node.js 자바스크립트 11497 , 통나무 건너뛰기 [정렬] (1) | 2022.09.25 |
백준/ Silver 4 문제 , 백준 Node.js 자바스크립트 1835 , 카드 [deque] (0) | 2022.09.22 |
백준/ Silver 2 문제 , 백준 Node.js 자바스크립트 15990 , 1, 2, 3 더하기 5 [dp] (0) | 2022.09.21 |