클래스명은 대문자로 시작해야하고, 정답이라는 의미로 Solution이라는 단어를 사용하였습니다.
2. 메소드 선언을 해줍니다.
● public int solution(int n) {
정수 n, slice를 매개변수로 사용하는 solution 메소드를 선언해줍니다.
메소드의 결과값인 solution은 정수이 나오므로, 데이터 타입을 int로 해줍니다.
3. 가격인 price에 대한 제한사항을 확인하고, 만족하지 않는다면 예외처리합니다.
●if (price < 10 || price > 1_000_000) { throw new IllegalArgumentException("price는 10 이상 1,000,000 이하여야합니다."); }
※ 숫자_숫자
일상생활에서 숫자의 천단위를 끊을 경우 ','를 사용하게 됩니다. (예시 : 10,000원)
하지만 java7부터 도입된 기능으로 가시성을 높이기위해 언더바 _를 숫자를 끊어쓰기위해 사용합니다.
예를 들어 10만이라면, 100_000 입니다.
4. if문과 else if문을 사용하여 50만원 이상 구매할 때, 30만원 이상 구매할 때, 10만원 이상 구매할 때, 그외의 경우
총 4가지 조건에 의해 지불해야할 가격을 totalPayment로 값을 지정합니다.
예를 들어, 50만원 이상 구매할 때 20프로 할인을 받는다는 뜻은 price의 80%가격을 지불하는 것과 동일합니다.
단, 이 때 소수점을 곱해주게되면 실수가 되어버리니 int로 정수 형변환을 해줘야합니다.
※ 주의
조건문 순서를 10만원 이상일 때, 30만원 이상일 때, 50만원 이상일 때로 해버리면 10만원 이상일 때 할인 10% 적용해버리고, 이미 조건은 만족시켜버리니 그 이후의 조건문은 발동하지 않습니다. 그래서 50만원 이상을 구매했다고해도, 10만원 이상 조건에서 할인이 적용되어버리니 올바른 가격이 아니게 됩니다.
else if는 else 뒤에 오는 조건이 true일 때만 실행되는 구문입니다. 여러 개의 조건을 순차적으로 검사하고자 할 때 사용됩니다.
if (condition1) { // condition1이 true일 때 실행되는 코드 } else if (condition2) { // condition1이 false이고 condition2가 true일 때 실행되는 코드 } else if (condition3) { // condition1과 condition2가 false이고 condition3이 true일 때 실행되는 코드 } else { // 모든 조건이 false일 때 실행되는 코드 }
4) 코드
class Solution {
public int solution(int price) {
if (price < 10 || price > 1_000_000) {
throw new IllegalArgumentException("price는 10 이상 1,000,000 이하여야합니다.");
}
int totalPayment = 0;
if (price >= 500_000) {
totalPayment = (int) (price * 0.8);
} else if (price >= 300_000) {
totalPayment = (int) (price * 0.9);
} else if (price >= 100_000) {
totalPayment = (int) (price * 0.95);
} else {
totalPayment = price;
}
return totalPayment;
}
}
* 비슷하면서도 다른 풀이방식 (참고용)
class Solution {
public int solution(int price) {
if (price < 10 || price > 1_000_000 || price % 10 != 0) {
throw new IllegalArgumentException("가격은 10 이상 1,000,000 이하이며, 10의 배수여야 합니다.");
}
int discountRate = 0;
if (price >= 500_000) {
discountRate = 20;
} else if (price >= 300_000) {
discountRate = 10;
} else if (price >= 100_000) {
discountRate = 5;
}
int discountedPrice = price - (price * discountRate / 100);
return discountedPrice;
}
}