프로그래머스 옷가게 할인 받기 자바스크립트 알고리즘 풀이
문제
나의 풀이
아이디어
- 중첩된 삼항 연산자로 큰 금액일 때부터 할인율을 적용해 리턴한다.
- 소수점 이하를 버려야 하므로
Math.trunc
나 비트 연산자, 틸트 연산자 등을 활용한다.코드
function solution(price) { return price * (price >= 500000 ? 0.8 : price >= 300000 ? 0.9 : price >= 100000 ? 0.95 : 1) >> 0; }
다른 사람 풀이
const solution=(p)=>~~(p*[1, 0.95, 0.95, 0.9, 0.9, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8][~~(p/100000)])
0~9부터 할인율을 배열로 넣어두고, ~~(p/100000)
로 배열의 인덱스를 계산하여 p와 곱하면 할인율이 적용된 값이 나온다.