[구름 goorm] 통증 - JavaScript

문제 출처

Lv.2 통증 - JavaScript

문제 핵심
  1. 통증 수치를 감소시켜 주는 아이템 3 종류가 있다.
  2. bandage: 1, medicine: 7, painkiller: 14 만큼 통증 수치를 감소시켜 준다.
  3. 플레이어는 전투에서 피해를 입어 N의 통증 수치를 가지고 있다.
  4. 통증 수치를 0으로 줄이기 위해 필요한 아이템의 최소 개수를 구해야 한다.
  5. 단, 사용했을 때 통증 수치가 0보다 작아지는 아이템은 사용할 수 없음에 유의한다.
제한 조건
  • 첫째 줄에 플레이어의 통증 수치를 나타내는 정수 N이 주어진다.
예시

입력
100

출력
9

풀이
// Run by Node.js
const readline = require("readline");

(async () => {
  let rl = readline.createInterface({ input: process.stdin });

  for await (const line of rl) {
    // 아이템의 종류
    const item = [1, 7, 14];

    // 통증 수치
    let hp = Number(line);

    // 현재 아이템의 인덱스
    let idx = 2;
    let answer = 0;

    // 통증 수치가 0보다 클 때까지 반복한다.
    while (hp > 0) {
      // 현재 아이템으로 통증 수치를 나눈 몫을 구한다.
      const val = Math.floor(hp / item[idx]);

      if (val > 0) {
        // 몫이 0보다 크다면, 통증 수치를 감소시키고 아이템 개수를 더해준다.
        answer += val;
        hp = hp - val * item[idx];
      } else {
        // 몫이 0이라면, 다음 아이템으로 넘어간다.
        idx--;
      }
    }

    console.log(answer);

    rl.close();
  }

  process.exit();
})();
정리

구름에 다양한 문제들이 있어서 재밌게 풀고 있습니다. 문제를 풀고 풀이를 정리해서 올려두겠습니다!

피드백은 언제나 환영입니다. 😊

사용한 메서드

Math.floor() 메서드 - MDN