[백준] 거스름돈 #14916

welchs·2022년 3월 25일
0

알고리즘

목록 보기
43/44
post-thumbnail

후기

생각해보면 -1이 나올 경우가 N이 1과 3일때 뿐이어서 해당 숫자일 경우 -1을 리턴해줬다.
나머지는 greedy 문제답게 최대한 5원짜리 동전을 많이쓰려했고, 많이쓰려했지만 나머지가 홀수일 경우 하나빼주면 짝수가 되서 무조건 2로 나누어 떨어지기 때문에 아래와 같이 코드를 구현했다.(홀수 + 홀수(5) = 짝수 이므로)

Node.js 풀이

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)));
profile
고수가 되고 싶은 조빱

0개의 댓글