[白俊]おつり14916


ポスト


考えてみれば-1が出てきたときにNだけが1と3だったときに、それ相応の数字なら-1を返します.
残りは欲張り問題のようになるべく5円玉を多めに使い、多めに使いたいのですが、残りが奇数であれば一つ削除すると偶数になり無条件に2に分けられるので、以下のコードを実現しました.(奇数+奇数(5)=偶数)

Node.説明する

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim();

const solution = (N) => {
  if (N === 1 || N === 3) return -1;
  let nFive = Math.floor(N / 5);
  N = N % 5;
  if (N % 2 === 1) {
    nFive--;
    N += 5;
  }
  return nFive + N / 2;
};

console.log(solution(Number(input)));