코린이의 소소한 공부노트

[프로그래머스/Lv.1] 부족한 금액 계산하기 본문

코딩테스트 풀이/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의 범위를 벗어나는 경우가 생겨서 그런듯