[코딩테스트] LV.0 옷가게 할인 받기 - JavaScript

JooSehyun·2023년 6월 10일
0

코딩테스트

목록 보기
13/17
post-thumbnail

프로그래머스 - 코딩테스트


LV.0 옷가게 할인 받기

문제 설명

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

제한사항

10 ≤ price ≤ 1,000,000
price는 10원 단위로(1의 자리가 0) 주어집니다.
소수점 이하를 버린 정수를 return합니다.


풀이

내 풀이 1

function solution(price){
    let a = 100000;
    let b = 300000;
    let c = 500000;
    const discount = 
    	b < price && c<=price ? price*0.8 : 
        a < price && b<=price ? price*0.9 : 
        a<=price ? price*0.95 : null;
    return discount
}

채점 결과
정확성: 70.0
합계: 70.0 / 100.0

내 풀이 2

function solution(price){
    let a = 100000;
    let b = 300000;
    let c = 500000;
    let discount = 0;
    if(price >= c){
        discount = price*0.2
    }
    else if(price >= b){
        discount = price*0.1
    }
    else if(price >= a){
        discount = price*0.05
    }
    return price - discount
}

채점 결과
정확성: 90.0
합계: 90.0 / 100.0

내 풀이 3

function solution(price) {
    let a = 100000;
    let b = 300000;
    let c = 500000;
    if (price >= a && price < b) {
        return Math.floor(price * 0.95)
    } else if (price >= b && price < c) {
        return Math.floor(price * 0.9)
    } else if (price >= c) {
        return Math.floor(price * 0.8)
    } else {
        return price
    }
}

채점 결과
정확성: 100.0
합계: 100.0 / 100.0

Math.floor를 사용하여 소수점이하를 내림 하여 계산하게 하였다. 간과하였다 100점 안나와서 계속 고민했다

가격이 10만 원 이상 30만 원 미만인 경우 (a ≤ price < b):

가격에 5% 할인을 적용하고 소수점을 버린 후 반환합니다.
가격이 30만 원 이상 50만 원 미만인 경우 (b ≤ price < c):

가격에 10% 할인을 적용하고 소수점을 버린 후 반환합니다.
가격이 50만 원 이상인 경우 (c ≤ price):

가격에 20% 할인을 적용하고 소수점을 버린 후 반환합니다.
가격이 10만 원 미만인 경우 (price < a):

가격을 그대로 반환합니다.

0개의 댓글