코딩 테스트/Programmers - 1

[JS] 부족한 금액 계산하기

hayeonn 2022. 9. 21. 15:46
반응형

[처음 푼 풀이]

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

  for (let count = 1; count <= 2500; count++) {
    fee += price * count;
  }
  return (fee - money);

  if (money > fee) return 0;
}

1. 먼저 요금을 반환받을 변수 설정

2. for문 안에서 count를 변수로 주고 요금에 원래가격 * 횟수 를 곱해 누적시킴

3. 그리고 요금에서 가지고 있던 돈을 빼서 리턴받음

4. 근데 여기서.. count <= 2500 이 뭔가 이상함.. (하면서도 이건 아닌 것 같다고 느낌)

5. 입출력 예시에 맞게 count <= 4 하면 테스트는 통과하지만, 나머지는 절대 안됨!

6. 따라서 for문 안의 변수를 다시 설정해야 한다고 느낌

 

[두번째 풀이]

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

  for (let i = 0; i <= count; i++) {
    fee += price * i;
  }
  result = fee - money;
  return result > 0 ? result : 0;
}

1. for문에서 i 를 변수로 넣고 count만큼 반복하게 하면 되었던 것!

2. 삼항연산자를 사용해 결과값이 0보다 크면 결과값을 리턴하고, 0보다 작으면 (금액이 부족하지 않으면) 0을 리턴!

 

 

[코드 리뷰]

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

  for (let i = 0; i <= count; i++) {
    sum += price * i;
  }
    
  return sum - money > 0 ? sum - money : 0
}

굳이 변수를 2개 설정하지 않고, sum 변수만 생성해 풀면 더 깔끔한 풀이법 완성!