백준 - Project Teams( 20044번, JAVA )

changi123·2024년 6월 20일
0
post-thumbnail

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

풀이

  • 원래 우선순위큐 3개 선언해서 풀었는데 안돼서 그냥 배열 3개 선언해서 정렬해서 각각의 조의 역량 합을 우선순위큐에 저장 후 상단 힙 영역에 있는 수 출력했다
  • 우선순위큐 3개로 왜 안되는지 이해가 안됨
package problem_solving.greedy;

import java.util.Arrays;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.Scanner;

public class BaekJoon_20044 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = Integer.parseInt(sc.next());
		Integer [] arr = new Integer[n*2];
		Integer [] arr1 = new Integer[n];
		Integer [] arr2 = new Integer[n];
		PriorityQueue<Integer>pq = new PriorityQueue<>();
		int index1 = 0 ;
		int index2 = 0 ;
		for(int i= 0 ; i < n*2 ; i++) {
			arr[i] = Integer.parseInt(sc.next());
		}
		Arrays.sort(arr);
		for(int i= 0 ; i < n*2 ; i++) {
			if( i < n ) {
				arr1[index1++] =  arr[i];
			} else {
				arr2[index2++] = arr[i];
			}
		}
		Arrays.sort(arr2,Collections.reverseOrder());
		for(int i= 0 ; i < arr1.length;i++) {
			pq.offer(arr1[i]+arr2[i]);
		}
		System.out.println(pq.poll());
	}

}

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

0개의 댓글

관련 채용 정보