Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Data Structure
- Counting
- implement
- 자바
- simulation
- 코딩테스트
- geometry
- Tree
- Binary Search
- Method
- 파이썬
- Math
- Matrix
- Stack
- 구현
- array
- sorting
- database
- greedy
- dynamic programming
- java
- Number Theory
- two pointers
- string
- bit manipulation
- Binary Tree
- SQL
- 코테
- Class
- hash table
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.1] 부족한 금액 계산하기 본문
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의 범위를 벗어나는 경우가 생겨서 그런듯
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.1] 악수의 개수와 덧셈 (0) | 2022.11.14 |
---|---|
[프로그래머스/Lv.1] 숫자 문자열과 영단어 (0) | 2022.11.14 |
[프로그래머스/Lv.1] 없는 숫자 더하기 (0) | 2022.11.11 |
[프로그래머스/Lv.1] 최소직사각형 (0) | 2022.11.09 |
[프로그래머스/Lv.1] 나머지가 1이 되는 수 찾기 (0) | 2022.11.09 |