본문 바로가기

백준20115 - 에너지 드링크 (그리디) node.js 본문

개발/algorithm

백준20115 - 에너지 드링크 (그리디) node.js

자전하는명왕성 2024. 3. 10. 09:21

https://www.acmicpc.net/problem/20115

 

문제 풀이 방식

에너지 드링크의 양을 최대로 하기 위해선 버리는 음료의 양을 최소화하여야 하기 때문에, 양에 따라 오름차순으로 정렬한 뒤, 가장 양이 많은 음료에 합치는 방식으로 구현했다.

 

전체 소스 코드

const fs = require("fs");
const input = fs
  .readFileSync(process.platform === "linux" ? "/dev/stdin" : "입력.txt")
  .toString()
  .trim()
  .split("\n");

function solution(data) {
  const N = +data[0];
  const arr = data[1]
    .split(" ")
    .map(Number)
    .sort((a, b) => a - b);

  let result = arr.at(-1);

  for (let i = 0; i < N - 1; i++) {
    result += arr[i] / 2;
  }

  console.log(result);
}

solution(input);
Comments