java/백준 java

[자바/Java] 백준 25704번 출석 이벤트

CE : 하랑 2023. 2. 5. 20:27

 

 

 

문제

 

쇼핑몰에서 30일간 출석 이벤트를 진행한다. 쇼핑몰의 사이트를 방문하면 1일 1회 출석 도장을 받을 수 있고, 출석 도장을 여러 개 모아서 할인 쿠폰으로 교환할 수 있다.

출석 도장의 개수에 따라 교환할 수 있는 할인 쿠폰의 종류가 달라진다.

  • 출석 도장 5개   → 500원 할인 쿠폰
  • 출석 도장 10개 → 10% 할인 쿠폰
  • 출석 도장 15개 → 2,000원 할인 쿠폰
  • 출석 도장 20개 → 25% 할인 쿠폰

경태가 모은 출석 도장의 개수와 구매할 물건의 가격이 주어졌을 때, 경태가 지불해야 하는 최소 금액을 구하시오. 단, 할인 쿠폰은 최대 하나만 적용 가능하다. 할인 금액이 물건의 가격보다 더 큰 경우 지불해야 하는 금액은 0원이다.

 

 

 

 

 

 

 

 

입력

 

첫째 줄에 경태가 모은 출석 도장의 개수 N이 주어진다.

둘째 줄에 경태가 구매할 물건의 가격 P가 주어진다. P는 항상 100의 배수이다.

ex)

12
50000
23
3000

 

 

 

 

 

 

출력

 

첫째 줄에 정답을 출력한다.

ex)

45000
1000

 



 

코드

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args)throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N=Integer.parseInt(br.readLine());
        int P=Integer.parseInt(br.readLine());

        int result=0;

        List<Integer> num=new ArrayList<Integer>();

        num.add(0);

        if(N>=5){
            num.add(500);
        }

        if(N>=10){
            num.add(P/10);
        }

        if(N>=15){
            num.add(2000);

        }if(N>=20){
            num.add(P/4);
        }

        result=P-Collections.max(num);

        if(result<0){
            result=0;
        }

        System.out.println(result);
    }
}