Coding Test/프로그래머스 Lv.0
프로그래머스 - 옷가게 할인받기
sangwoo_rhie
2023. 6. 1. 08:02
https://school.programmers.co.kr/learn/courses/30/lessons/120818
제한사항 ; 소수점 이하를 버린 단위를 return.
나의 풀이 1.
function solution(price) {
if (price < 100000){
return price;
} else if (100000 <= price < 300000){
return Math.floor(price * 0.95);
} else if (300000 <= price < 500000){
return Math.floor(price * 0.9);
} else if (500000 <= price) {
return Math.floor(price * 0.8);
}
}
if~ else if 문 사용. 각각
(1) 10만 미만일때,
(2) 10만 이상~ 30만 이하,
(3) 30만 이상~ 50만 미만,
(4) 50만 이상일때로 나누었고
그 결과값을 소수점 내림으로 Math.floor로 해서 할인된 가격으로 return 도출했으나 오답.
테스트실행결과 2개중 하나는 정답, 하나는 오답이었는데 사유는
입력값 〉 580000
기댓값 〉 464000
실행 결과 〉 실행한 결괏값 551000이 기댓값 464000과 다릅니다.
즉 580,000원 짜리에 첫번째 if문이 적용됨.
price라는 변수를 특정값 이상 , 특정값 이하 두개의 조건이 한번에 안걸리는것 같았다.
그래서 다시 큰 수부터 식 세움.
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;
}
}