코딩테스트 풀이/JAVA
[프로그래머스/Lv.1] 부족한 금액 계산하기
무지맘
2022. 11. 11. 16:41
1. Input
1) 놀이기구의 이용료 price
2) 처음에 가지고 있던 금액 money
3) 놀이기구 이용 횟수 count
4) input 3가지는 모두 int
2. Output
1) 놀이기구를 count번 타게 됐을 때 money에서 모자른 금액을 담은 long 변수
2) 놀이 기구는 타면 탈수록 이용료가 price만큼 증가한다. 즉 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상된다.
3. Constraint
1) 1 ≤ price ≤ 2,500
2) 1 ≤ money ≤ 1,000,000,000
3) 1 ≤ count ≤ 2,500
4. Example
Input: price=3, mony=20, count=4 -> Output: 10
설명: 이용금액이 3인 놀이기구를 4번 타고 싶다면 총 필요한 놀이기구의 이용 금액은 3+6+9+12=30인데, 현재 20을 갖고 있으므로 10이 부족하다.
5. Code
1) 첫 코드(2022/??)
// 필요한 금액 계산하기
long total = 0;
for(int i=1 ; i<=count ; i++)
total += price * i;
if(total <= money) return 0;
else return total – money;
2) 수학 공식을 이용해서 간단하게 줄여본 코드(2022/11/11)
long total = price * count * (count+1) / 2;
return total<=money ? 0 : total-money;
- 더 빠르지만 에러 발생
- total 계산에서 long의 범위를 벗어나는 경우가 생겨서 그런듯