
풀면서 어려운 부분이 있었던건 아니었는데, 한번 틀려서 띠용? 하고는 해결법을 찾음.
나는 반복문을 돌리지 않고, 고교때 배웠던 합공식 n(n+1)/2로 풀었는데,
이걸로 풀다보니, int로 받은 매개변수들끼리 계산하면서 int를 넘어 overflow 하는 경우가 생김.
따라서, 맨 처음 인자값을 long으로 미리 바꿔줘야 한다.
무식하게 반복문돌려서 하나씩 더하면, 이런 걱정 없음.
class Solution {
public long solution(int price, int money, int count) {
long answer = 0;
long cost = (long)price * count * (count+1) / 2;
if (money<cost) {
answer+=cost-money;
}
return answer;
}
}
'프로그래머스 문제풀이 > Level 1' 카테고리의 다른 글
| 콜라 문제 (자바, Java) (0) | 2024.02.11 |
|---|---|
| 콜라츠 추측 (자바, Java) (0) | 2022.12.23 |
| 두 정수 사이의 합 (자바, Java) (0) | 2022.12.23 |
| 나머지가 1이 되는 수 찾기 (자바, Java) (0) | 2022.12.23 |
| 정수 내림차순으로 배치하기 (자바, Java) (0) | 2022.12.22 |