프로그래머스 | Lv2. 최솟값 만들기 (Java)

728x90

프로그래머스 | Lv2. 최솟값 만들기 (Java)

문제 풀이

  • A, B 두 배열을 모두 오름차순 정렬 시킨다.
  • 뽑은 값들의 누적합이 최솟값이 되기 위해서는 (A의 가장 작은 값이 B의 가장 큰 값과 곱한 것)을 누적하면 된다.

코드

import java.util.*;
class Solution
{
    public int solution(int []A, int []B)
    {
        //A, B 모두 오름차순 정렬 후 
        //A의 가장 작은 값과 B의 가장 큰 값을  곱하면서 점차 범위를 좁히면 된다
        int answer = 0;

        Arrays.sort(A);
        Arrays.sort(B);

        for(int i=0; i<A.length; i++){
            answer += (A[i] * B[B.length - i- 1]);
        }

        return answer;
    }
}
728x90