문제 :
내 풀이 :
function solution(price, money, count) {
let sum = 0;
for(let i = 1; i <= count; i++) {
sum += i * price;
}
if(money > sum) {
return 0;
} else {
return sum - money;
}
}
다른 사람의 풀이 :
function solution(price, money, count) {
const moneyToPay = (count * (count + 1))/2 * price;
if (money >= moneyToPay) return 0;
return moneyToPay - money;
}
위 풀이는 산술 수열의 합을 계산하는 공식을 사용하여 작성됐다.
수식 (count * (count + 1)) / 2 * price는 총 지불해야 하는 금액을 계산하는 부분이다.
- 1부터 count까지의 합 계산:
- (count * (count + 1)) / 2는 1부터 count까지의 정수를 더한 값을 구하는 공식이다.
- 이 공식은 산술 수열의 합을 계산할 때 사용됩니다. 예를 들어, count가 4일 때, 1 + 2 + 3 + 4 = 10이다.
- 일반적으로 n까지의 정수의 합은
로 계산된다.
- 총 금액 계산:
- 이 합계에 price를 곱해서 총 금액을 계산한다.
- 예를 들어, 놀이공원에서 첫 번째 놀이의 가격이 price일 때, 두 번째 놀이의 가격은 2 * price, 세 번째 놀이의 가격은 3 * price이다.
- 따라서, 1부터 count까지의 합계에 price를 곱하면, 총 지불해야 하는 금액이 된다.
'프로그래머스' 카테고리의 다른 글
[JavaScript] 최대공약수와 최소공배수 - 프로그래머스 (0) | 2024.08.14 |
---|---|
[JavaScript] 문자열 다루기 기본 - 프로그래머스 (0) | 2024.08.13 |
[JavaScript] 콜라츠 추측 - 프로그래머스 (0) | 2024.08.09 |
[JavaScript] 하샤드 수 - 프로그래머스 (0) | 2024.08.08 |
[JavaScript] 문자열 내 p와 y의 개수 - 프로그래머스 (0) | 2024.08.07 |