문제
머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
정답
function solution(price) {
var answer = price;
if(price >= 500000) {
answer = price - (price * 0.2)
} else if(price >= 300000) {
answer = price - (price * 0.1)
} else if(price >= 100000) {
answer = price - (price * 0.05)
}
return Math.floor(answer);
}
- answer 변수에 초기 가격인 price를 할당합니다.
- 조건문을 사용하여 price에 따라 할인을 적용하고, answer를 갱신합니다.
- Math.floor() 함수를 사용하여 소수점 이하를 버린 최종 지불 금액을 반환합니다.
~~ 과 Math.floor에 대해서
~~와 Math.floor는 모두 숫자를 정수로 바꾸는 용도로 사용될 수 있습니다. 하지만 그 사용 방법과 특징에는 차이가 있습니다.
- ’~~ 연산자’
‘~’는 비트 연산자입니다. 두 번의 비트 NOT 연산을 수행하여 소수 부분을 버리고 정수로 변환합니다.
음수의 경우에는 양의 정수로 변환됩니다.
‘~~’는 주로 간단한 방법으로 숫자를 정수로 변환할 때 사용됩니다. - ‘Math.floor 함수’
‘Math.floor 함수’는 주어진 숫자의 소수 부분을 내림하여 가장 큰 정수로 반환합니다.
음수의 경우에도 더 작은 정수로 내림됩니다.
‘Math.floor’는 명시적인 함수 호출이기 때문에 더 가독성이 좋습니다.