백준 2839번 JavaScript

yj j·2023년 12월 19일
1

백준 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개의 댓글

관련 채용 정보