백준 2839번 JavaScript

yj j·2023년 12월 19일

백준 2839번 node.js 해결

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const n = Number(input[0]);

let five = Number.parseInt(n/5);
let three = 0;
let result = 0;

//5킬로그램만 쓸 수 있는 경우
if(n%5===0) {
  result = n / 5;
}else {
  //5킬로그램 최댓값에서 5를 하나씩 빼주며 3으로 나누어떨어지는지 계산
  for(let i = five ; i > 0 ; i -= 1 ){
    let count = n;
    if((count - (i * 5))%3===0){
      five = i;
      three = (count - (i * 5)) / 3;
      result = five + three;
      break;
    }
  }
  //3킬로그램만 써야하는 경우
  if(result===0&&n%3===0) result = n / 3;
}
//완전히 나누어떨어지지 않는 경우 -1 출력
if(result===0) console.log(-1);
else console.log(result);

5 킬로그램을 최대한 많이 써야하므로 5를 하나씩 제외해가면서 남은 수량이 3으로 나누어떨어지는지 확인했습니다.
정확한 킬로수가 되지 못하는 경우 -1을 출력하는 예외처리도 해주어야 합니다.
생각나는 예외를 추가하는 형식으로 덧붙이다보니 뭔가 빠뜨렸을 거라고 생각했는데 한번에 정답이 나와서 오히려 놀랐네요... 테스트 케이스가 간단하고 확인하기 편해서 가능했다고 생각합니다.

profile
꿈꾸는 사람

0개의 댓글