Front-End
알고리즘 배워가기(부족한 금액 계산하기) 본문
문제설명
새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다.
놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요.
단, 금액이 부족하지 않으면 0을 return 하세요.
제한 사항
놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수
처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수
놀이기구의 이용 횟수 count : 1 ≤ count ≤ 2,500, count는 자연수
입출력 예
price | money | count | result |
3 | 20 | 4 | 10 |
설명 : 이용금액이 3인 놀이기구를 4번 타고 싶은 고객이 현재 가진 금액이 20이라면,
총 필요한 놀이기구의 이용 금액은 30 (= 3+6+9+12) 이 되어 10만큼 부족하므로 10을 return 합니다.
문제 분석
- 필요한 놀이기구의 이용금액을 계산해야함.
- 내가 가지고있던 money와 총금액을 비교해봐야함.
- money와 총금액의 차가 0이라면 0을 return해야함.
필요한 코드
- for문 으로 증가되는 요금을 계산해줘야함.
1부터 곱해야 되니까 i = 1
입출력 예시에서 1~4까지 곱했으니 i <= count
누적 값(총 이용금액)을 구하기 위해 answer += i * price;
- 삼항연산자 (?)를 사용해야함. (if문과 비슷한것 같음)
금액이 부족하다면 얼만큼부족한지, 부족하지않다면 0을 return해라
answer < money
true이면 0을
false면 answer - money 를 돌려주기로
삼항연산자(?)
조건문 ? 선택문1 : 선택문 2; 으로 되어있음을 알면된다.
완료된 코드
function solution(price, money, count) { var answer = 0; // 필요한 놀이기구의 이용 금액 for(let i=1; i <= count; i++) { answer += i * price; }// 부족한 금액 구하기 return answer <= money ? 0 : answer - money; }
여기서 if 문은 안되나? 라는 생각해 시도해봄..
function solution(price, money, count) {
var answer = 0;
// 필요한 놀이기구의 이용 금액
for(let i=1; i <= count; i++) {
answer += i * price;
}// 부족한 금액 구하기
if(answer <= money){
result = 0; // answer = 놀이기구 이용금액 이 money보다 작거나 같다면
}else if (answer>money){
result = answer - money; //놀이기구 이용금액이 money보다 크다면 그 둘의 차이값을 계산해라
}
return result;
}
Comments