항해 프로그래머스

(다시)항해3주차 자바스크립트 프로그래머스 - 부족한 금액 계산하기

완두노예 2023. 1. 28. 17:09

처음 풀이 

function solution(price, money, count) {
    let answer = 0;
    for(let i = 1; i <= count; i++) {
        answer += price * i;
    }
    if money > answer = return 0
    else if money < answer = answer - money

//놀이기구이용*count = price
//for문 돌려서 
//금액이 안부족하면 0 리턴
//금액이 부족하면

수정 풀이 :  뭘 써야할지 알긴아는데, 여전히 코드를 참고하지않으면 완벽하게 작성하기 어렵다.

function solution(price, money, count) {
    let answer = 0;
    for(let i = 1; i <= count; i++) {
        answer += price * i;
    }
    if  result = money - answer < 0 {return.result}
    else if result =  money - answer === 0 {return.result}
   
//놀이기구이용*count = price
//for문 돌려서 
//금액이 안부족하면 0 리턴
//금액이 부족하면

최종 풀이

function solution(price, money, count) {
    var answer = 0;
    for(let i=1; i <= count; i++){
        answer += i * price;
    }
    if (answer < money) {
      return 0
    } else {
      return answer - money
    }
}
//놀이기구이용*count = price
//for문 돌려서 
//금액이 안부족하면 0 리턴
//금액이 부족하면

 

다른 풀이

가우스 공식 이용

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

    for (let i = 1; i <= count; i++) {
        answer += price * i;
    }

    return answer > money ? answer - money : 0;
}
function solution(price, money, count) {

    const moneyToPay = (count * (count + 1))/2 * price;

    if (money >= moneyToPay) return 0; 

    return moneyToPay - money;
}

Math.abs  제일 아랫줄! 공부필요

function solution(price, money, count) {
    for(let i = 1; i <= count; i++) {
        money -= price * i;
    }

    return money >= 0 ? 0 : Math.abs(money);
}