코드 그라데이션
[LV.0] 옷가게 할인 받기_Java 본문
https://school.programmers.co.kr/learn/courses/30/lessons/120818
문제 설명
머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
// 1. price를 설정한다.
// 2. 할인율별로 case 분류를 한다.
// 3. 지불해야 할 금액을 계산한다.
// 4. 출력한다.
// 5. 좁은 범위부터 할 수 있도록 리펙토링 가능
class Solution {
public int solution(int price) {
int answer = 0;
if(price >= 100000 && price < 300000) {
answer = (int)(price*0.95);
} else if(price >= 300000 && price < 500000) {
answer = (int)(price*0.9);
} else if(price >= 500000) {
answer = (int)(price*0.8);
} else if(price < 100000) {
answer = price;
}
return answer;
}
}
지금 범위 설정에서 약간에 애먹음이 있었다.
큰 범위를 조건문 가장 위에 집어넣어버리면, 거기 통과하면 아래까지 갈 필요가 없어지므로... 주의
그래서 우리가 try-catch 예외처리 할 때 처럼, 일단 작은 범위를 위에 놓고, 아래에 큰 범위로 점차 커지도록
조건설정을 만들어준다
else-if 문에서 else는 안 써도 된다.
728x90
'Java > 알고리즘' 카테고리의 다른 글
[Lv.0] (4문제) a와 b 출력하기, 문자열 반복해서 출력하기, 덧셈 식 출력하기, 문자열 출력하기 (1) | 2023.05.10 |
---|---|
[Lv.0] (4문제) 두 수의 합, 두 수의 차, 두 수의 곱, 몫 구하기 (1) | 2023.05.10 |
[백준] 시험 성적 (0) | 2023.03.18 |
[백준] 사분면 고르기 (0) | 2023.03.18 |
[Lv.1] 문자열 내 p와 y의 개수 (1) | 2023.02.03 |
Comments