새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 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 | money | count | result |
---|---|---|---|
3 | 20 | 4 | 10 |
입출력 예 #1
이용금액이 3
인 놀이기구를 4
번 타고 싶은 고객이 현재 가진 금액이 20
이라면, 총 필요한 놀이기구의 이용 금액은 30 (= 3+6+9+12)
이 되어 10
만큼 부족하므로 10
을 return
합니다.
class Solution {
public long solution(int price, int money, int count) {
long cost = 0;
for ( int i = 1; i <= count; i++ )
cost += price * i;
return ( money > cost)? 0 : cost-money;
}
}
long cost = 0;
for ( int i = 1; i <= count; i++ )
cost += price * i;
놀이기구 요금인 cost
를 long
으로 타입을 설정한다. 이는 이용료인 price
와 이용 횟수인 i
를 곱했을 때 int형
의 범위를 벗어나기 때문에 long
으로 타입을 설정해야 하는 것이다.
for문
을 돌려 cost
에 이용횟수만큼 이용금액을 누적한다.
return ( money > cost)? 0 : cost-money;
삼항 연산자를 이용하여 사용자가 가지고 있는 돈인 money
가 내야하는 비용인 cost
보다 많다면 0
을 return
하고, 내야하는 금액이 부족하다면 cost-money
를 return
한다.