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

Gaeun·2022년 11월 2일
0

옷가게 할인 받기

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

나의 풀이

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
}

굉장히 쉬운 문제인데 2가지를 간과하여 틀렸었다.

  1. if문이 위에서부터 차례대로 작동되며 조건을 만족할 때 바로 return된다는 사실을 잊은 채, 맨 처음 코드를 작성할 때 10만원 이상인 경우를 가장 처음 작성하였다. 그러다보니 price가 30만 혹은 50만 이상인 경우에는 내가 원하는 0.9 혹은 0.8까지 내려오지 않고 바로 return되어 틀린 답을 반환하였다.
  2. 제한사항에서 소수점 이하를 버린 정수를 return 해야한다고 써져있는데 이를 간과하여 Math.floor를 쓰지 않고 문제를 풀었다.

따라서 오늘 문제를 풀며 배운 두 가지는 다음과 같다.

  1. if문을 쓸 때 유의하기!!!
  2. 제한사항 잘 읽기!!!

다른 사람의 풀이

function solution(price) {
    if (price >= 100000 && price < 300000) {
        return Math.floor(price * .95)
    } else if (price >= 300000 && price < 500000) {
        return Math.floor(price * .9)
    } else if (price >= 500000) {
        return Math.floor(price * .8)
    } else {
        return price
    }
}

만약 내가 이렇게 if문의 작동 방법을 유의하며 price의 범위를 &&연산자를 사용하여 정확히 작성했다면 한 번에 바로 풀 수 있었다. 사소한 것을 놓치지 않도록 주의해야겠다.

profile
🌱 새싹 개발자의 고군분투 코딩 일기

0개의 댓글