카테고리 없음

[programmers] Lv0. 옷가게 할인 받기 Day5

건강한_개발자 2023. 2. 15. 23:45


1. 나의 풀이

idea.

1. 이번 문제는 그냥 if 문 사용 문제였다.

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

느낀점

1. 코드실행시 테스트를 통과해서 쉽게 넘어갈 줄 알았는데 제출하니 테스트 5개정도가 막혔다.

2. 이유는 마지막에 return price를 빼고 썼기 때문이었다. 금방 알아차리고 고쳐서 통과 완료.

 


2. 다른 사람 풀이

const discounts = [
    [500000, 20],
    [300000, 10],
    [100000,  5],
]

const solution = (price) => {
    for (const discount of discounts)
        if (price >= discount[0])
            return Math.floor(price - price * discount[1] / 100)
    return price
}

느낀점.

1. discounts를 배열로 만들어 반복문을 사용해 풀었다. 

2. 굳이 이 문제를 이렇게 풀 필요가 있나? 라는 생각하나, 이런 풀이도 있을 수 있구나 라는 생각 하나가 들었다.