[백준 20115] 에너지 드링크 with node.js

waterglasses·2022년 4월 4일
0
post-thumbnail

📌 문제

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

📌 풀이

이 문제는 그리디 문제이다.
에너지 드링크들을 합치는 과정은 다음과 같다.
1. 임의의 서로 다른 두 에너지 드링크를 고르고
2. 한쪽 에너지 드링크를 다른 쪽에 붓는다.(작은쪽에서 양이 적은 것을 절반 버림!)

위와 같은 풀이이다.
임의의 라는 단어를 제대로 보지 못하여 문제에서 입력이 주어진 순서대로 풀었더니 계속 답이 나오지 않았다. 지문을 잘 보고 풀도록!

📌 코드

const fs = require("fs");
const stdin = (
  process.platform === "linux"
    ? fs.readFileSync("/dev/stdin").toString().trim()
    : `10
100 9 77 65 39 27 45 1 80 495`
).split("\n");

const input = (() => {
  let line = 0;
  return () => stdin[line++];
})();

const N = Number(input());
const drinks = input().split(" ").map(Number);

drinks.sort((a, b) => b - a);

let accDrinks = drinks[0];
for (let i = 1; i < drinks.length; i++) {
  accDrinks += drinks[i] / 2;
}
console.log(accDrinks);

📌 느낀점

지문을 잘 보지 않아서 금방 풀 문제를 한참 걸려서 풀었다. 임의의.. 그 단어를 하나 보지 못하여 이런 사단이 일어났다.
지문도 꼼꼼히 읽어야 겠다.

profile
매 순간 성장하는 개발자가 되려고 노력하고 있습니다.

0개의 댓글