Programmers Lv.1 - 부족한 금액 계산하기[Java]

seren-dev·2022년 6월 25일

Programmers Lv.1

목록 보기
14/15

https://programmers.co.kr/learn/courses/30/lessons/82612

접근

  • 1부터 count까지 더한 횟수를 구한 후
  • 횟수*price와 money를 비교

나의 풀이

  • 다음과 같은 코드로 제출했지만 틀렸다.
class Solution {
    public long solution(int price, int money, int count) {


        int total = (1 + count) * count /2;

        long total_price = price * total;
        
        return total_price > money ? (long)(total_price - money) : 0;
    }
}
  • 어딘가에서 overflow가 나서 틀리는 것 같았다.
  • 위의 count를 계산할 때 long으로 강제 형변환을 해보았다.

수정한 풀이

class Solution {
    public long solution(int price, int money, int count) {

        long total_price = price * ((1 + count) * (long)count /2);
        
        return total_price > money ? (total_price - money) : 0;
    }
}

다른 사람의 풀이

class Solution {
    public long solution(long price, long money, long count) {
        return Math.max(price * (count * (count + 1) / 2) - money, 0);
    }
}

0개의 댓글