반응형
문제 출처
https://www.acmicpc.net/problem/1461
정답 풀이
- 양수와 음수를 따로 생각해줘야 한다.
- 양수 배열과 음수 배열중 가장 절댓값이 큰 값을 나중에 total 에서 빼준다
=> 가장 긴 거리를 가고 안돌아오는 것이 이득임.
- 절댓값이 큰 책부터 처리해야함
정답 코드
let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const [n,m] = input[0].split(' ').map(v => +v);
const place = input[1].split(' ').map(v => +v)
let maxDistance =0;
const negatives = place.filter(v => v<0).sort((a,b) => a-b);//절대값이 큰게 앞으로
const positives = place.filter(v => v>0).sort((a,b) => b-a);
if(negatives.length > 0){
maxDistance = Math.abs(negatives[0])
}
if(positives.length > 0){
maxDistance = Math.max(maxDistance, positives[0])
}
let total = 0;
for(let i=0; i<negatives.length; i+=m){
total += Math.abs(negatives[i]) * 2
}
for(let i=0; i<positives.length; i+=m){
total += positives[i] * 2
}
total -= maxDistance
console.log(total)
반응형
'알고리즘 문제 풀기' 카테고리의 다른 글
백준 17281 : 야구 - javascript(완전탐색) (1) | 2024.10.29 |
---|---|
백준 17135 : 캐슬 디펜스 - javascript(완전탐색, dfs, 시뮬레이션) (0) | 2024.10.23 |
백준 14500: 테트로미노 - javascript (완탐, dfs) (0) | 2024.10.15 |
백준 2589 : 보물섬 - javascript(bfs) (0) | 2024.10.14 |
백준 16724 : 피리 부는 사나이 - javascript(dfs) (0) | 2024.10.13 |