joyful
[Javascript] 옷가게 할인 받기 - 프로그래머스 본문
문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/120818
문제
풀이
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
}
초기 풀이 (오답)
function solution(price) {
let answer = 0;
if(price > 100000) {
answer = price - price * 0.05;
} else if (price > 300000) {
answer = price - price * 0.1;
} else if (price > 500000) {
answer = price - price * 0.2
}
return answer;
}
1. if문은 위에서부터 작동하여 조건이 맞을 시 바로 값을 return하는데, 10만원 이상일 때를 가장 우선적인 조건으로 두었다.
그래서 price가 30만원이나 50만원 이상일 때, 10만원 이상일 때의 조건에 충족하여 잘못된 값이 return되었다.
2. 소수점 이하의 정수를 return 해야 해서 Math.floor 함수를 사용해야 했다.
다른 사람 풀이
function solution(price) {
if (price >= 500000)
return parseInt(price*(1-0.2));
if (price >= 300000)
return parseInt(price*(1-0.1));
if (price >= 100000)
return parseInt(price*(1-0.05));
return price
}
초기 풀이와 비슷해서 조건문 순서만 적절히 넣었으면 정답이었을텐데 아쉬웠다.
다른 사람들의 풀이도 꼭 참고해보자!
'프로그래머스' 카테고리의 다른 글
[Javascript] 나이 출력 - 프로그래머스 (0) | 2024.03.14 |
---|---|
[Javascript] 아이스 아메리카노 - 프로그래머스 (0) | 2024.03.14 |
[Javascript] 배열의 평균값 - 프로그래머스 (0) | 2024.03.11 |
[Javascript] 피자 나눠 먹기 (3) - 프로그래머스 (0) | 2024.03.07 |
[Javascript] 피자 나눠 먹기 (2) - 프로그래머스 (1) | 2024.03.07 |