옷가게 할인 받기

문제

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


제한사항

  • 10 ≤ price ≤ 1,000,000

    • price는 10원 단위로(1의 자리가 0) 주어집니다.

  • 소수점 이하를 버린 정수를 return합니다.


입출력 예

priceresult

150,000

142,500

580,000

464,000


입출력 예 설명

입출력 예 #1

  • 150,000원에서 5%를 할인한 142,500원을 return 합니다.

입출력 예 #2

  • 580,000원에서 20%를 할인한 464,000원을 return 합니다.

코드

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

다른 풀이

function solution(price) {
  if (price >= 500000) return parseInt(price * 0.8);

  if (price >= 300000) return parseInt(price * 0.9);

  if (price >= 100000) return parseInt(price * 0.95);

  return price;
}

조건문을 줄 때 큰 조건에서부터 내려오면 && 조건을 붙여주지 않아도 된다.

🔍 테스트 케이스

계속 오류가 나는 케이스가 있었는데 소수점 이하를 버린 정수를 return 하라는 조건에서 볼 수 있듯이 소수점이 포함된 값이 있는 것 같다. 소수점 이하 버림 처리 같이 해주면 된다!

Last updated