
머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
| price | result |
|---|---|
| 150,000 | 142,500 |
| 580,000 | 464,000 |
입출력 예 #1
150,000원에서 5%를 할인한 142,500원을 return 합니다.
입출력 예 #2
580,000원에서 20%를 할인한 464,000원을 return 합니다.
function solution(price) {
if(price < 100000) return price;
else if(price >= 100000 && price < 300000)
return ~~(price*0.95);
else if(price >= 300000 && price < 500000)
return ~~(price*0.9);
else return ~~(price*0.8);
}
완전히 마음에 들지 않는다. else if문을 사용해서 조건문이 길어졌다.
다른 사람의 풀이를 봐보자.
function solution(price) {
if (price >= 500000)
return parseInt(price*(1-0.2));
if (price >= 300000)
return parseInt(price*(1-0.1));
if (price >= 100000)
return parseInt(price*(1-0.05));
return price
}
위의 코드를 내 방식대로 줄여보겠다.
function solution(price) {
if (price >= 500000) return ~~(price*0.8);
if (price >= 300000) return ~~(price*0.9);
if (price >= 100000) return ~~(price*0.95);
return price
}
이 풀이를 가져온 이유는 else if문을 사용하지 않고 오로지 if문만 사용해서이다.
나는 else if문을 사용해서 && 연산자까지 사용하게 되니 조건문이 길어졌는데, 이 분의 코드는 제일 큰 값(500000)부터 차례대로 작은 값(100000)에 if문으로 조건을 달았다.
100000원 보다 큰 경우일 때, 300000원 이상과 500000원 이상도 포함 되는 경우이다. 그래서 else if문으로 코드를 짜면 && 연산자도 사용하게 되는 것이다.