츄어를 살 수 있도록 코딩해주는 코집사입니다.
1. (백준) 백준 25704 출석 이벤트 JAVA
1) 문제 번호: 25704일
2) 문제의 원인
https://www.acmicpc.net/problem/25704
제25704호 : 대면행사
쇼핑몰에서 30일간 대면 이벤트가 진행됩니다.
쇼핑몰 방문 시 1일 1회 방문 스탬프를 받을 수 있으며, 방문 스탬프를 여러 개 모아 할인쿠폰으로 교환할 수 있습니다.
출석 스탬프 수에 따라
www.acmicpc.net
2. 문제
쇼핑몰에서 30일간 대면 이벤트가 진행됩니다.
쇼핑몰 방문 시 1일 1회 방문 스탬프를 받을 수 있으며, 방문 스탬프를 여러 개 모아 할인쿠폰으로 교환할 수 있습니다.
출석 토큰 수에 따라 다양한 종류의 할인 쿠폰을 교환할 수 있습니다.
- 출석 스탬프 5개 → 500원 할인권
- 출석 스탬프 10개 → 10% 할인권
- 출석도장 15개 → 2,000원 할인쿠폰
- 출석 스탬프 20개 → 25% 할인권
그가 모은 출석 토큰의 수와 그가 살 상품의 가격에 따라 그가 지불해야 하는 최소 금액을 결정합니다.
단, 할인쿠폰은 최대 1매까지 적용 가능합니다.
할인금액이 상품가격보다 큰 경우 결제금액은 0원입니다.
3. 제한
4. 입력
첫 번째 줄에는 경태가 모은 출석점수 N이 주어진다.
두 번째 줄은 경태가 살 아이템의 가격 P를 나타냅니다.
P는 항상 100의 배수입니다.
5. 종료
답을 첫 번째 줄에 인쇄하십시오.
6. 해결
– 범위별 할인된 가격 중에서 가치를 얻고 최소 가치를 사용하세요.
– 아래 코드는 리팩토링이 필요한 코드이므로 참고만 하시면 됩니다.
7. 소스 코드
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class Main {
public static void main(String() args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine()); // 출석 도장 개수
int P = Integer.parseInt(br.readLine()); // 물건의 가격
double val = P;
if(N >= 5 && N < 10) {
val = P - 500;
} else if(N >= 10 && N < 15) {
double t1 = P - 500;
double t2 = P - (P * 0.1);
val = Math.min(t1, t2);
} else if(N >= 15 && N < 20) {
double t1 = P - 500;
double t2 = P - (P * 0.1);
val = Math.min(t1, t2);
double t3 = P - 2000;
val = Math.min(val, t3);
} else if(N >= 20) {
double t1 = P - 500;
double t2 = P - (P * 0.1);
val = Math.min(t1, t2);
double t3 = P - 2000;
val = Math.min(val, t3);
double t4 = P - (P * 0.25);
val = Math.min(val, t4);
}
if(val < 0) {
System.out.println(0);
} else {
System.out.println((int)val);
}
}
}