위클리 챌린지
🔥 부족한 금액 계산하기 🔥
놀이기구의 원래 이용료는 price인데 놀이기구를 N번째 이용한다면 원래 이용료의 N배를 받는다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성해보자.
단, 금액이 부족하지 않으면 0을 return 하자.
price | money | count | result |
---|---|---|---|
3 | 20 | 4 | 10 |
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;
}
}
처음에 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 될 것이다.