티스토리 뷰

본 글은 다크모드에 최적화되어 있습니다.

학기 중에는 해설 로직을 포함하지 않습니다.

문제

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

 

20300번: 서강근육맨

PT 첫째 날에 $1$과 $4$를 선택하고, 둘째 날에 $2$와 $3$을 선택하고, 마지막 날에 $5$를 선택하면 $M$은 $5$가 되며, 이때가 $M$이 최소일 때이다.

www.acmicpc.net

언어

자바 Java

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
    private static long[] muscleLoss;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        muscleLoss = new long[n];
        String[] input = br.readLine().split(" ");
        for (int i = 0; i < n; i++)
            muscleLoss[i] = Long.parseLong(input[i]);

        Arrays.sort(muscleLoss);
        if (muscleLoss.length % 2 == 0) {
            long max = 0;
            int start = 0, end = n - 1;
            while (start < end) {
                long sum = muscleLoss[start++] + muscleLoss[end--];
                max = Math.max(max, sum);
            }
            System.out.println(max);
        } else {
            long max = muscleLoss[n - 1];
            int start = 0, end = n - 2;
            while (start < end) {
                long sum = muscleLoss[start++] + muscleLoss[end--];
                max = Math.max(max, sum);
            }
            System.out.println(max);
        }
    }
}

 

 

Total
Today
Yesterday
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30