백준 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을 출력하는 예외처리도 해주어야 합니다.
생각나는 예외를 추가하는 형식으로 덧붙이다보니 뭔가 빠뜨렸을 거라고 생각했는데 한번에 정답이 나와서 오히려 놀랐네요... 테스트 케이스가 간단하고 확인하기 편해서 가능했다고 생각합니다.