TIL
[TIL]Enum 활용
높하늬바람
2025. 5. 14. 09:49
TIL - 2025.03.12
오늘 배운 것 개요
- Java Enum 활용: 사용자 유형별 할인율 적용
- Math.max() 활용: 부족한 금액 계산 시 음수 방지
- 코드 최적화:
StringBuilder
및Math.max()
를 사용하여 불필요한 연산 제거
1. Kiosk 프로젝트 - 할인 및 장바구니 기능 개선
1. Enum을 활용한 사용자 유형별 할인율 적용
- 기존 할인율을 상수 값이 아닌 Enum으로 관리하여 가독성을 높임
Discount
Enum을 활용하여 각 사용자 유형별 할인율 적용
수정 코드
public enum Discount {
PDS(0.1), MILL(0.05), STU(0.03), NON(0.0);
private final double discountRate;
Discount(double discountRate) {
this.discountRate = discountRate;
}
public double getDiscountRate() {
return discountRate;
}
}
장점:
- 코드 가독성 향상 (사용자 유형별 할인율을 직관적으로 표현)
- 유지보수 용이 (새로운 할인 유형이 추가될 때 Enum만 수정하면 됨)
2. 프로그래머스 - 알고리즘 문제 해결
1. 부족한 금액 계산하기 (Math.max()
활용)
1. 기존 코드
answer = cost - money;
를 그대로 반환하여 음수가 나올 가능성 존재
2. 수정 코드
class Solution {
public long solution(int price, int money, int count) {
long cost = price * (long) count * (count + 1) / 2;
return Math.max(cost - money, 0); // 부족한 금액이 없으면 0 반환
}
}
장점:
- 안정적인 결과 보장 (음수 값 방지)
- 코드 최적화 (불필요한 변수 제거)
오늘의 결론
- Enum을 활용하여 할인율을 효과적으로 관리
- 람다 & 스트림을 사용하여 장바구니 기능을 최적화
Math.max()
를 사용하여 안정적인 부족 금액 계산
다음 학습 목표
- Enum, 람다 & 스트림을 활용한 주문 및 장바구니 관리 기능 구현
- 코드 리팩토링을 통해 유지보수성을 높이는 작업 진행