부족한 금액 계산하기_Java

컴투루·2022년 6월 29일
0

프로그래머스 Lv.1

목록 보기
25/38

위클리 챌린지

🔥 부족한 금액 계산하기 🔥


👀 문제

놀이기구의 원래 이용료는 price인데 놀이기구를 N번째 이용한다면 원래 이용료의 N배를 받는다. 놀이기구를 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는 자연수

👩‍💻 입력 & 🧙 출력

pricemoneycountresult
320410

🙋‍♀️ 풀이

class Solution {                         
    public long solution(int price, int money, int count) {
        
         long sum =0;
        for (int i=1;i<=count;i++){
            sum += price*i;
        }
        long answer = Math.abs(money-sum);
        
        if(money>sum){
            answer = 0;
        }
        
        return answer;
    }
}
  1. count까지 반복문을 돌리면서 sum에 price * i의 값을 더해준다.
  2. Math.abs를 이용해서 money-sum의 절댓값을 answer에 대입
  3. 만약 money가 sum보다 크다면 answer에 0을 대입

처음에 sum을 long형이 아니라 int형으로 하니까 오류가 났는데 더하다보면 sum의 값이 int를 벗어날수 있어서 그런것!!


💬 다른 풀이

class Solution {
    public long solution(long price, long money, long count) {
        return Math.max(price * (count * (count + 1) / 2) - money, 0);
    }
}

등차수열의 합 공식 이용 : n(n+1)/2

price에 count를 이용한 등차수열의 합을 곱해준 후 money를 빼준다.
Math의 max를 이용했기때문에 money를 뺀값이 0보다 클때만 해당 값이 return 되고 아닌경우 0이 return 될 것이다.

profile
맘 먹으면 못할 게 없지

0개의 댓글