프로그래머스 js 부족한 금액 구하기

이명진·2022년 6월 29일
0

코드카타

목록 보기
29/69

문제

어떤 놀이기구를 타는데 인기가 많아서 금액이 탄 횟수만큼 증가한다
가격 * 탄횟수 가 가격이 된다
만약 N번 탔을때 내가 가진 금액에서 기구를 이용할때 부족한 금액을 구해라 가 문제이다

얼마나 인기가 많으면 이용 금액이 기존 금액보다 배수로 높아지는데 이용을 할까 ;

아무튼 문제를 풀게 되었다 쉽게 생각하여서 for문을 돌려서 문제를 풀었다

주어진 매개변수는 price, money, count 가 주어졌다

내가 푼 로직


function solution(price, money, count) {
  let totalPrice = 0  
  for(let i =0; i<=count; i++){
      totalPrice += i*price 
    }
  totalPrice = totalPrice-money
totalPrice >= 0 ? totalPrice : 0

  
    return totalPrice;
}

전체 금액에 카운트만큼 곱 한 값을 더해주었다.
그리고 만약 금액이 부족하지 않으면 0을 리턴하라는 조건이 있어서
삼항연산자를 이용하여서 문제를 풀었다

부족하지 않다 ? 이용한 금액에서 내 금액을 뺐을 경우 음수가 되면 부족하지 않다 라고 생각했다
money가 totalPrice보다 크니까

그래서 저런 로직이 나왔는데 답안을 제출하면 계속 4번 테스트에서 틀리는 것이었다

무엇이 잘못되었을까?
곰곰히 생각해봤다 부족하지 않다? money와 totalPrice가 같을때도 부족하지 않을 것이다
그래서 >= 등호를 사용한건데 계속해서 테스트 4에서 막히니
왜 잘못된것인지 정말 궁금해졌다.

결국 좀더 고민하다가 검색을 하게 되었다 검색했을때 나온 로직은 아래와 같다

function solution(price, money, count) {
    let answer = 0;

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

    return answer > money ? answer - money : 0;
}

더 단순하게 이용한 값보다 money가 더 클때 0을 리턴한다 였다

이 로직으로는 테스트를 통과했다 근데 결국 내 로직이 뭐가 틀렸는지 이해할수는 없었다
결국 내로직과 같은 말 같은데 답을 아시는 분이 있다면 알려주시면 감사하겠습니다 ㅜㅜ

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글