[프로그래머스] 부족한 금액 계산하기 - JavaScript

MinWoo Park·2021년 8월 7일
0

Algorithm

목록 보기
41/42
post-thumbnail

Algorithm Problem with JavaScript — 41day


문제 설명 📖

새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다.
놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요.
단, 금액이 부족하지 않으면 0을 return 하세요.

제한사항

  • 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수
  • 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수
  • 놀이기구의 이용 횟수 count : 1 ≤ count ≤ 2,500, count는 자연수

입출력 예

문제 이해 🔑

이용료가 초기 이용료(price) * 이용 횟수(n)로 증가하는 놀이기구를 원하는 만큼 탔을 때의 금액과, 원하는 횟수만큼 이용하려면 보유 자산에서 얼마가 부족한지 알아내는 문제입니다.

n번만큼 새로 증가한 금액을 누적하여 값을 구할 수 있는 문제였습니다.


수도 코드 ✍️

  1. 인풋으로 받은 원하는 카운트만큼 반복문을 설정합니다.
  2. 이용료는 n이 증가할 때 마다 곱하여 새로운 이용료를 설정해 줍니다.
  3. 누적 금액에 새로운 이용료를 더합니다.
  4. 카운트만큼의 반복문이 종료됬을 때 누적 이용료와 보유 자산을 비교합니다.
  5. 누적 금액보다 보유 자산이 큰 경우 return 0, 누적 금액보다 보유 자산이 작은 경우 누적 금액에서 보유 자산을 빼서 부족한 금액을 리턴합니다.

코드 작성 ⌨️

function solution(price, money, count) {
    let accumulatedfee = 0;
    for (let i = 1; i <= count; i++) {
      // n번 째 이용료
      accumulatedfee = accumulatedfee + price * i;
    }
    if (accumulatedfee <= money) {
        return 0;
    } else {
        return accumulatedfee - money;
    }
}


정리 😄

문제의 본질은 반복문을 통해 이미 선언된 변수의 값을 증감할 수 있는지 묻고 있었습니다.

profile
물음표를 느낌표로 바꾸는 순간을 사랑하는 개발자입니다.

0개의 댓글