개발 공부

프로그래머스 부족한 금액 계산하기 자바 (+10) 본문

코딩 테스트

프로그래머스 부족한 금액 계산하기 자바 (+10)

hyecozy 2022. 12. 7. 01:23

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

class Solution {
    public long solution(long price, long money, long count) {
        long answer = -1;
        long prCnt = 0;
        
        for(int i = 1; i <= count; i++){
            prCnt += (price * i);
        }
        
        price = prCnt;
        if(money >= price){
            answer = 0;
        }
        else{
            answer = price - money;
        }
        return answer;
    }
}

상당히 직관적인 코드를 짰다....!! 자야 할 시간이라 충분히 고민을 하진 못했지만 그래도 뭔가 더 효율적인 방법이 있을 것 같은데 생각하며 제출했다.

직관적인 건 좋은 거라고 생각하지만 그래도 더 좋은 방법이 있지 않을까 생각함..

 

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

그러고 마주친 등차수열의 합을 이용한 코드;;;

참고로 등차수열의 합 공식은 

r(n(n+1)) / 2 , r=차수(여기서는 price), n=count

이 공식을 이용한 것 외에도, 0과의 비교문을 쓰지 않고 max 함수를 썼다는 것이 흥미로웠다.

총 비용을 구해서 money를 빼면 내가 부족한 만큼의 값이 나올 것이다. 

비용보다 money가 더 많아 값이 음수가 나온다면 0이 더 크기에 0을 리턴할 것이다....

진짜 대단

 

Comments