-
[Programmers] JavaScript 알고리즘 | Lv.0 옷가게 할인 받기► JS Algorithm/Programmers 2022. 11. 22. 23:45반응형
🔒 문제 설명
머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
🔒 제한사항
- 10 ≤ price ≤ 1,000,000
- price는 10원 단위로(1의 자리가 0) 주어집니다.
- 소수점 이하를 버린 정수를 return합니다.
🔒 입출력 예
price result 150,000 142,500 580,000 464,000
🔒 입출력 예 설명
▶︎ 입출력 예 #1
- 150,000원에서 5%를 할인한 142,500원을 return 합니다.
▶︎ 입출력 예 #2
- 580,000원에서 20%를 할인한 464,000원을 return 합니다.
🔐 풀이 예제 (if, else, else if 활용)
function solution(price) { let answer = 0; if (price >= 500000) { answer = price * 0.8; } else if (price >= 300000) { answer = price * 0.9; } else if (price >= 100000) { answer = price * 0.95; } else { answer = price; } return Math.floor(answer) }
1. 할인율 수학이 어려워서 고민했다;;; 수학공부도 해야하나 ..
- 처음엔 'price - (price / 100) * 5;' 라고 작성했다가, 다른 블로거의 코드를 눈팅하여 'price * 0.95;' 로 바꿨다 ㅋㅋ
2. 문제이해가 잘못되어 한참을 해맸다 ..
- 위의 제한사항의 내용을 보면, 10원단위라고 하여서 'Math.floor(answer / 10) * 10;'라고 작성하여 1의자리는 전부 0으로 바꿨다.
그래도 에러가 나서, 고민해보았는데 ..
그냥 단순히, 소수점은 버리는거로 해볼까라고 남친이 얘기해서 'Math.floor(answer)'로 수정해보니, 됐네? ^^
🔐 풀이 예제 (배열, for of 활용_타인답안 참고)
const solution = (price) => { const discounts = [ [500000, 20], [300000, 10], [100000, 5], ]; for (let discount of discounts) { if (price >= discount[0]) { return Math.floor(price - (price / 100) * discount[1]); } } }; solution(150000); // output: 142,500
for..in [객체순환] / for..of [배열순환]
반응형'► JS Algorithm > Programmers' 카테고리의 다른 글
[Programmers] JavaScript 알고리즘 | Lv.0 두 수의 곱 (0) 2022.11.23 [Programmers] JavaScript 알고리즘 | Lv.0 짝수는 싫어요 (0) 2022.11.23 [Programmers] JavaScript 알고리즘 | Lv.0 아이스 아메리카노 (0) 2022.11.22 [Programmers] JavaScript 알고리즘 | Lv.0 배열의 평균값 (0) 2022.11.22 [프로그래머스] JavaScript 알고리즘 | Lv.2 올바른 괄호 (1) 2022.08.18 - 10 ≤ price ≤ 1,000,000