⌨️ 프로그래머스/코딩테스트 입문

[프로그래머스] 옷가게 할인 받기 👕👖

하나둘세현 2024. 2. 17. 21:42
728x90

문제

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

해결 과정

전체 가격 변수를 만들었다. 

let totalPrice를 만들어 퍼센트 할인 공식을 넣어 할인된 가격이 출력되게 했다.


할인(%) 공신 만들기
가격 - (가격 * 할인 퍼센트) = 할인된 가격

function solution(price) {
    
    let totalPrice = 0;
    
       if(price >= 500000) {
           totalPrice = price - (price * 0.2);
       } else if(price >= 300000)      {
           totalPrice = price - (price * 0.1);
       } else if(price >= 100000) {
            totalPrice = price - (price * 0.05);
       } else {
          totalPrice = price;
       }
    
    return Math.floor(totalPrice);
}

// 1. 가격(price 변수 만들기)
// 2. 10만원 이상 사면 5%
// 3. 30만원 이상 사면 10%
// 4. 50 만원 이상 사면 20% 할인

// 할인(%) 공신 만들기
// 가격 - (가격 * 할인 퍼센트) = 할인된 가격

위에는 리펙토링을 하기 전이다. 

 

리펙토링을 통해 코드의 길이 줄임 및 간결함을 주었다.

function solution(price) {
    if(price >= 500000) {
        return Math.floor(price - (price * 0.2));
     } 
    if(price >= 300000)      {
        return Math.floor(price - (price * 0.1));
     } 
    if(price >= 100000) {
        return Math.floor( price - (price * 0.05));
     }  
    return Math.floor(price);
       
}

정답

function solution(price) {
    if(price >= 500000) {
        return Math.floor(price - (price * 0.2));
     } 
    if(price >= 300000)      {
        return Math.floor(price - (price * 0.1));
     } 
    if(price >= 100000) {
        return Math.floor( price - (price * 0.05));
     }  
    return Math.floor(price);
       
}

 

26m

728x90