본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 1049/javascript] 기타줄

by tokkiC 2022. 10. 26.

조건을 조절해서 최소, 최대를 구하는 문제는 그리디 문제라고 의심해보면 대게 맞다

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

 

1049번: 기타줄

첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주

www.acmicpc.net

let input = [];

const readline = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

readline.on("line", (line) => {
  input.push(line);
});

readline.on("close", () => {
  solution(input);
  process.exit();
});

const solution = (inp) => {
  let n = Number(inp.shift().split(" ")[0]);
  let setarr = [];
  let piecearr = [];

  for (el of inp) {
    let [set, piece] = el.split(" ").map((el) => Number(el));
    setarr.push(set);
    piecearr.push(piece);
  }
  let minset = Math.min(...setarr);
  let minpiece = Math.min(...piecearr);
  let ans = Math.min(
    Math.ceil(n / 6) * minset,
    Math.floor(n / 6) * minset + (n % 6) * minpiece,
    n * minpiece
  );

  console.log(ans);
};

댓글