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

NCOOKIE·2025년 3월 8일
0

알고리즘

목록 보기
34/34

부족한 금액 계산하기

class Solution {
    public long solution(int price, int money, int count) {
        // 등차수열 공식 이용
        long payment = (long) price * ((count * (count + 1)) / 2);
        return money >= payment ? 0 : payment - money;
    }
}

공식 세우고 이를 구현하는건 바로 했다. 근데 테스트 케이스 4개 정도에서 자꾸 찐빠가 나는게 아닌가... 이런건 대부분 데이터가 자료형 범위를 넘어서 오버플로우가 발생하는 경우였다.

long payment = price * ((count * (count + 1)) / 2);

원래 코드는 이거였다. 만약 price * ...의 값이 int 범위를 넘어서면 에러가 발생한다. 파라미터 타입으로 int를 사용하고 있기 때문이다. 그래서 price를 먼저 long으로 형변환해줘서 연산 결과가 long이 되도록 했다.
(왜 나는 결과를 저장하는 변수 타입이 long이면 알아서 연산 도중 long 타입으로 바뀔 것이라고 생각했던걸까...)

이제 알고리즘은 바로바로 떠올리는데 정작 구현능력이 부족하다는 것을 체감 중이다...

profile
일단 해보자

0개의 댓글

관련 채용 정보