IT/Algorithm

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

프티 2021. 10. 15. 14:23
반응형

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

 

코딩테스트 연습 - 1주차_부족한 금액 계산하기

새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이

programmers.co.kr

 

나의 풀이

function solution(price, money, count) {
    let needMoney = 0;
    
    while (count) {
        needMoney += price * count;
        count -= 1;
    }
    
    return needMoney - money > 0 ? needMoney - money : 0 ;
}

count번 놀이기구를 탈 돈의 총액을 구하기 위해 while문을 사용하였다.

그리고 삼항 연산자로 금액이 부족한 경우 부족한 금액을,

부족하지 않은 경우 0을 반환하도록 하였다.

 

다른 사람의 풀이

function solution(price, money, count) {
    const tmp = price * count * (count + 1) / 2 - money;
    return tmp > 0 ? tmp : 0;
}

나와의 차이점은 바로 필요한 금액을 계산하기 위해 가우스 공식을 사용했다는 것이다.

 

누적액을 계산하면 다음 과정과 같다.

3 * 1 + 3 * 2 + 3 * 3 + 3 * 4 = 3 * (1 + 2 + 3 + 4)

 

여기서 1 +... 4 계산은 가우스 공식을 활용할 수 있다.

 

가우스 공식: (첫 항 + 마지막 항) * 항의 개수 / 2

 

따라서 이 공식을 활용하면 while문을 사용하지 않아도 된다.

즉, 코드를 줄일 수 있다는 것!

반응형

'IT > Algorithm' 카테고리의 다른 글

프로그래머스) 소수 만들기  (0) 2021.10.19
프로그래머스) 3진법 뒤집기  (0) 2021.10.18
프로그래머스) 예산  (0) 2021.10.14
Bubble Sort, Insertion Sort 구현해보기  (0) 2021.10.14
Queue에 대해서  (0) 2021.10.13