[JS] 옷가게 할인 받기 programmers if문, Math.Floor

0

코딩테스트

목록 보기
30/80
post-thumbnail

🎀 문제

머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.

function solution(price) {
    var answer = 0;
    return answer;
}

🎀 내 답변 (오답)

function solution(price) {
    let answer = 0
    if(100000 <= price){
        console.log("5")
        answer = price - (price * 0.05)
    }else if(300000 <= price){
        console.log("10")
        answer = price - (price * 0.10)
    }else if(500000 <= price){
        console.log("20")
        answer = price * 0.20
    }
    return answer
}

❗️for문은 위에서부터 순차적으로 적용된다.
쉽게 말해서 큰 수부터 써 주어야 한다.

🎀 내 최종 답변 (정답)

function solution(price) {
    if(price >= 500000) {
        price *= 0.8;
    } else if(price >= 300000) {
        price *= 0.9;
    } else if(price >= 100000) {
        price *= 0.95;
    }
    return Math.floor(price);
}

20% 할인을 적용할 때 0.8을 곱해주는데, 이는 할인을 받은 후의 가격을 계산하기 위함이다.
즉, 20% 할인을 받는 것은 원래 가격에서 80%를 남기는 것과 같다.
따라서 price *= 0.8;은 현재의 price에 80%를 곱하여 새로운 할인된 가격을 계산하는 것이다.

profile
일단 해. 그리고 잘 되면 잘 된 거, 잘 못되면 그냥 해본 거!

0개의 댓글