횟수가 1, 2, 3 ... 늘어날 때마다
이용가격도 1배, 2배, 3배, ... 늘어나므로
100원1 + 100원2 + 100원3 + ...
= 100(1+2+3+...+n)
= 100(n(n+1)/2)
임을 이용했다.
function solution(price, money, count) {
let pay = count*(count+1)/2*price
return pay>money ? pay-money : 0
}
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ?
function solution(price, money, count) {
const expectedMoney = Array.from({ length: count }).reduce((acc, _, idx) => (acc += (idx + 1) * price), 0);
const gap = money - expectedMoney;
return gap > 0 ? 0 : gap * -1;
}
위에 if문 풀이랑 배열에 담는 아이디어는 같은데 reduce를 사용해서 식이 좀 더 간결해짐.
이런거 어떻게 하는거야 대체