Frontend Developer

프로그래머스 - 옷가게 할인 받기

문제

머쓱이네 옷가게는 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);
}
  1. answer 변수에 초기 가격인 price를 할당합니다.
  2. 조건문을 사용하여 price에 따라 할인을 적용하고, answer를 갱신합니다.
  3. Math.floor() 함수를 사용하여 소수점 이하를 버린 최종 지불 금액을 반환합니다.

~~ 과 Math.floor에 대해서

~~와 Math.floor는 모두 숫자를 정수로 바꾸는 용도로 사용될 수 있습니다. 하지만 그 사용 방법과 특징에는 차이가 있습니다.

  1. ’~~ 연산자’
    ‘~’는 비트 연산자입니다. 두 번의 비트 NOT 연산을 수행하여 소수 부분을 버리고 정수로 변환합니다.
    음수의 경우에는 양의 정수로 변환됩니다.
    ‘~~’는 주로 간단한 방법으로 숫자를 정수로 변환할 때 사용됩니다.
  2. ‘Math.floor 함수’
    ‘Math.floor 함수’는 주어진 숫자의 소수 부분을 내림하여 가장 큰 정수로 반환합니다.
    음수의 경우에도 더 작은 정수로 내림됩니다.
    ‘Math.floor’는 명시적인 함수 호출이기 때문에 더 가독성이 좋습니다.