알고리즘

프로그래머스 - 부족한 금액 계산하기

Heidong 2022. 6. 29. 00:20
반응형

 

내 풀이

public class P_32 {
    
    public long solution(int price, int money, int count) {
        // 부족한 금액 계산하기

        long answer = -1;

        long cal_price = price;
        for(int i=2; i<=count; i++) {
            cal_price += (price * i);
        }
        answer = Math.abs(money - cal_price);
        if(money - cal_price >= 0) {
            answer = 0;
        }

        return answer;
    }

    public static void main(String[] args) {
        P_32 p = new P_32();

        int price = 3;
        int money = 20;
        int count = 4;

        System.out.println(p.solution(price, money, count));
    }
}

간단한 문제지만 주의할 점

int형으로 계산을 돌리면 테스트19 ~ 22가 오류가 나온다.

아마 int형의 자릿수 한계를 넘어서서 계산하기 때문인 것 같다.

long형으로 계산해줘야 한다.

 

Math의 abs() 메소드 = 절대값 구할때 사용

 

다른 사람 풀이

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

등차수열의 합을 이용한 풀이 방법

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=junhyuk7272&logNo=221247061276 

 

3. 등차수열의 합

3. 등차수열의 합  (1) 기본적인 공식 도출 등차수열의 합공식은 가우스가 초등학교 때 만들었습니다. 1부...

blog.naver.com

 

반응형