반응형
https://programmers.co.kr/learn/courses/30/lessons/82612
나의 풀이
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 |