안녕하세요

[node.js] 2839 설탕배달 (자바스크립트) 기본수학단계1 본문

백준 자바스크립트

[node.js] 2839 설탕배달 (자바스크립트) 기본수학단계1

sakuraop 2022. 6. 4. 23:27

2839 설탕 배달

3 ≤ N ≤ 5000 에 대하여 N을 최대한의 5의 배수와 최소한의 3의 배수를 합한 조합으로 나머지가 생기지 않도록 나눕니다.

5와 3각각의 배수끼리 더합니다. 나누어 떨어지지 않는다면 -1을 출력합니다.

18은 5x3 과 3x1로 이루어져 있습니다. 결과는 4입니다.

18

결과

4

 

제출한 답

let n = Number(require("fs").readFileSync("dev/stdin").toString());

let kg3 = 0;

while (n >= -2) {
  if (n % 5 == 0) {
    console.log(n / 5 + kg3);
    break;
  } else if (n < 0) {
    console.log(-1);
  }
  kg3++;
  n -= 3;
}

 

코드설명

  • 1) 최대한의 5kg 봉지와 최소한의 3kg 봉지를 조합하여 나누어 떨어지도록 해야합니다.
  • 2) 나누어 떨어지지 않는다면 3kg 만큼 덜어냅니다.
      kg3++;
      n -= 3;
  • 3) 5kg 봉지로 나누어떨어질 때까지 3kg 만큼 덜어내는 작업을 반복합니다.
    while (n >= -2) {
      if (n % 5 == 0) {
        console.log(n / 5 + kg3);
        break;
  • 4) 모두 덜어내었음에도 나누어떨어지지 않는다면 -1을 출력합니다.
      } else if (n < 0) {
        console.log(-1);
      }