-
프로그래머스 - 옷가게 할인받기Coding Test/프로그래머스 Lv.0 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; } }
'Coding Test > 프로그래머스 Lv.0' 카테고리의 다른 글
프로그래머스 - 배열 뒤집기 (어려움) (0) 2023.06.01 프로그래머스 - 아이스 아메리카노 (0) 2023.06.01 프로그래머스 - 최빈값 구하기 (이해못함) (0) 2023.05.31 프로그래머스 - 피자 나눠먹기 (3) (어려움) (0) 2023.05.31 프로그래머스 - 피자 나눠먹기(2) (0) 2023.05.31