코드 그라데이션

[LV.0] 옷가게 할인 받기_Java 본문

Java/알고리즘

[LV.0] 옷가게 할인 받기_Java

완벽한 장면 2023. 3. 20. 10:15

 

https://school.programmers.co.kr/learn/courses/30/lessons/120818

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

머쓱이네 옷가게는 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
Comments