공부하기/백준

[Java] 백준 풀기 17450 - 과자 사기

XEV 2023. 5. 25. 23:39

자바 백준 17450번

브론즈 3

https://www.acmicpc.net/problem/17450

 

17450번: 과자 사기

입력은 총 3개의 줄로 이루어지며, 각 줄에는 S, N, U의 순서대로 한 봉지의 가격과 무게가 띄어쓰기를 사이에 두고 주어진다. 모든 입력값은 1 이상 1,000 이하의 정수이다. 세 종류의 과자의 가성

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 구현, 사칙연산

 

 

 

 

 

문제 풀기

최고의 가성비를 저장할 변수와 그 과자의 이름을 저장할 변수를 준비한다.

3 개의 과자가 준비되어 있기에 3 번의 for loop 을 돌리면서 가격과 무게를 입력 받는다. 5000 원이 넘어가는 경우 500 원 할인을 생각하여 조건문을 분기시키고 해당 과자의 가성비를 계산한다.

계산된 가성비가 최대 가성비보다 큰 경우 그 가성비를 최대값으로 옮겨 저장하고 for loop 의 i 와 일치하는 과자의 이름을 저장한다.

모든 for loop 이 완료되면 과자의 이름을 출력한다.

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        
        Scanner sc = new Scanner(System.in);
        
        double bestBangforTheBuck = 0;
        String snack = "";
        
        for (int i = 1; i <= 3; i++) {
            double price = sc.nextDouble();
            double weight = sc.nextDouble();
            
            double bangForTheBuck = 0;
            
            if (price * 10 >= 5000) {
                bangForTheBuck = (weight * 10) / (price * 10 - 500);
            }
            else {
                bangForTheBuck = (weight * 10) / (price * 10 );
            }
            
            if (bestBangforTheBuck < bangForTheBuck) {
                bestBangforTheBuck = bangForTheBuck;
                if (i == 1) snack = "S";
                else if (i == 2) snack = "N";
                else if (i == 3) snack = "U";
            }
        }
        
        System.out.print(snack);

    }
}