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

김아무개·2023년 3월 29일
0

프로그래머스

목록 보기
12/41

내 코드

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

문제 읽고 바로 풀어서 제출 했는데 ,
한번에 통과되어서 메모와 타이머를 측정하지 않았다.

다른 사람 코드를 부러갔다가 새로운 방법을 배워서 기억하기 위해 글을 쓰기로했다!

다른 사람 코드 _ 프로그래머스 다른사람풀이 첫번째

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

나는 이 문제를 price * ( n + (n - 1) + (n - 2) + ... + 2 + 1 ) 으로 풀었는데,
가져온 코드에서는 price * (n * (n + 1)) / 2 로 계산했다.


그냥 외우기는 힘드니, 테스트 고고 🤔

n = 4

1) n + (n - 1) + (n - 2) + ... + 2 + 1  
= 4 + 3 + 2 + 1
= 10

2) count * (count + 1) / 2
= 4 * 5 / 2
= 20 / 2
= 10
n = 6

1) n + (n - 1) + (n - 2) + ... + 2 + 1  
= 6 + 5 + 4 + 3 + 2 + 1
= 21

2) count * (count + 1) / 2
= 6 * 7 / 2
= 42 / 2
= 21

오호..!

profile
Hello velog! 

0개의 댓글