본문 바로가기
Algorithm

[프로그래머스] 부족한 금액 계산하기 - JavaScript 📝

by Baest 2021. 11. 9.

[링크]

https://programmers.co.kr/learn/courses/30/lessons/82612

 

코딩테스트 연습 - 부족한 금액 계산하기

새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이

programmers.co.kr

 

 

 

 

[문제설명 및 입출력 예]

 

 

 

 

[내가 제출한 코드 및 풀이]

📝풀이과정

더보기
  1. count 만큼 반복문을 돌린다
  2. 금액 * 이용횟수(count)를 sum에 넣어줌
  3. 총금액 계산해서 tot 에 넣음
  4. return tot

근데 왜... 정확도 95.7인건데😂 

오늘, 내일 분량 다 풀고 다시 돌아와서 수정해야겠다 :)

 

💡정확도 100% 로 끌어올린 코드!

 

📝풀이과정

더보기
  1. count 만큼 반복문을 돌린다.
  2. 이용금액 * 이용횟수(count)를 sum에 넣었다.
  3. 총금액 계산해서 result 에 넣음  (이전 코드에서는 tot 로 작성했으나 헷갈려서 result 로 바꿨음)
  4. 이전 코드의 정확도가 95.7이었던 이유는 바로바로 한 가지 조건을 처리하지 않았던 것..! 단, 금액이 부족하지 않으면 0을 return 하세요.
  5. 4번 부분을 처리하기 위해서 if - else 문을 추가했다. result 값이 양수로 나올 경우 돈이 부족한 것이고, 0이나 음수로 나올 경우 돈이 부족하지 않은 것이기 때문에 문제의 조건에 따라 0을 return 해주면 끝!

 

 

[다른 사람의 코드]

1
2
3
4
5
6
7
8
9
function solution(price, money, count) {
    let totalPrice = 0;
    
    for(let i=1;i<=count;i++){
        totalPrice += price * i;
    }
    
    return money > totalPrice ? 0 : totalPrice-money
}
 
cs
  • for문을 count 만큼 돌리고 마지막 처리는 삼항 연산자로 처리

 

1
2
3
4
5
function solution(price, money, count) {
    let sum = 0;
    for(let i = 1; i<= count; i++) money -= price*i;
    return money >= 0 ? 0 : Math.abs(money);
}
 
cs
  • Math 함수와 절대값으로 작성된 코드