백준 - 서강근육맨 ( 20300번, JAVA )

changi123·2024년 10월 29일
post-thumbnail

Greedy ( https://www.acmicpc.net/problem/20300 )

풀이

  • n이 홀수 일 경우
    (1) 정렬한 가장 마지막 수 == 가장 큰 수
    (2) i번째 수와 n-2-i번째 수를 합하여 나온 조합 중 가장 큰 수
    (3) 두 수를 비교하여 더 큰 수

  • n이 짝수 일 경우
    (1) i번째 수와 n-1-i번째 수를 합하여 나온 조합 중 가장 큰 수
    (2) 두 수를 비교하여 더 큰 수

package problem_solving.greedy;

import java.util.Arrays;
import java.util.Scanner;

public class BaekJoon_20300 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = Integer.parseInt(sc.next());
		Long [] arr = new Long[n];
		for(int i= 0 ; i < arr.length;i++) {
			arr[i] = Long.parseLong(sc.next());
		}
		
		Arrays.sort(arr);
		
		Long answer = Long.parseLong("0") ;
		Long sum = Long.parseLong("0") ;
		if( n % 2 == 1 ) {
			
			for(int i = 0 ; i <arr.length / 2 ; i++) {
				sum = arr[i] + arr[arr.length-2-i];
				answer = Math.max(answer, sum);
			}
			System.out.println(Math.max(answer, arr[arr.length-1]));
			
		} else {
			for(int i = 0 ; i <arr.length / 2 ; i++) {
				sum = arr[i] + arr[arr.length-1-i];
				answer = Math.max(answer, sum);
			}
			System.out.println(answer);
		}	
		
	
		
	}

}

profile
개발자 홍찬기 꾸준한 사람이 되자

0개의 댓글