머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price
가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
price
≤ 1,000,000price
는 10원 단위로(1의 자리가 0) 주어집니다.price | result |
---|---|
150,000 | 142,500 |
580,000 | 464,000 |
입출력 예 #1
입출력 예 #2
const solution = (price) => {
if(price >= 500000) {
return price - price * 0.2;
} else if(price >= 300000) {
return price - price * 0.1;
} else if(price >= 100000) {
return price -price * 0.05;
} else {
return price;
}
}
/* 내가 처음에 작성한 코드이다. 실행하면 정답이라고 나오지만 결과는 실패로 떠서 뭐가 실수인지 처음부터
문제를 다시 읽으며 제대로 살펴 보았더니,, 제한사항에 소수점 이하를 버린 정수를 return 한다는 문구가
있다는 것을 발견하였다.. 코드를 다시 작성 후 제출하니 성공! 아래에 수정한 코드를 작성해 보았다. */
const solution = (price) => {
if(price >= 500000) {
return Math.floor(price * 0.8); // 위의 price - price * 0.2와 같은 코드
} else if(price >= 300000) {
return Math.floor(price * 0.9);
} else if(price >= 100000) {
return Math.floor(price * 0.95);
} else {
return price;
}
}
/* Math.floor를 이용하여 소수점은 내림을 해주어 return 결과가 정수로 나오게끔 해주었다.*/
const solution = (price) =>
price >= 500000 ? Math.floor(price * 0.8)
: price >= 300000 ? Math.floor(price * 0.9)
: price >= 100000 ? Math.floor(price * 0.95) : Math.floor(price);
/* SOLUTION1의 코드를 삼항연산자로 바꾸어 작성해 보았다. */