Problem Solving/Baekjoon

[백준] 20115 에너지 드링크 - Greedy / Java

graycode 2023. 4. 7. 10:36

 문제 링크

 

20115번: 에너지 드링크

페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한

www.acmicpc.net

 

 풀이 과정

각 용액의 양을 입력받아 모두 합하면서, 이 중 최대값을 구한다.

 

최대값에 최대값을 제외한 나머지 용액의 합의 반을 더한 값이 합할 수 있는 최대값이며,

이를 나타내는 max += (max - sum) / 2 을 변형하여 (max + sum) / 2 을 정답으로써 출력한다. 

 

 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int n = Integer.parseInt(br.readLine());

        long sum = 0;
        int max = 0;

        st = new StringTokenizer(br.readLine());
        while (n-- > 0) {
            int i = Integer.parseInt(st.nextToken());
            sum += i;
            max = Math.max(max, i);
        }

        bw.write(String.valueOf((max + sum) / 2d));
        bw.flush();
    }

}