알고리즘

최솟값 만들기(Lv.2)[프로그래머스]

Dev_0andWild 2022. 9. 19. 10:15
728x90


import java.util.*;

class Solution
{
    public int solution(int []A, int []B){
    int answer = 0;
        //누적 최소 값이므로 가장 큰수와 가장 작은 수를 곱해주기 위해 하나는 오름차순 하나는 내림차순으로 정렬

        /*오름차순*/
        Arrays.sort(A);
        /*내림차순 정렬*/
        // Collectons는 기본적으로 Object를 상속한 클래스에 대해서 사용 가능하므로
        //String,Integer,Double 등과 같은 Object 타입에 배열은 sort에 Collections.reverseOrder()사용이 가능하고
        //기본타입인 int, double, char, float 등은 사용이 불가능함.
        //따라서 int[]B 배열을 Integer[]b 배열로 변환후 내림차순 정렬
        Integer[] b = new Integer[B.length];
        for (int i = 0; i<B.length; i++) b[i] = B[i];
        Arrays.sort(b, Collections.reverseOrder());
        /*answer = 누적 값*/
        for(int i=0; i<A.length; i++){
            answer = A[i] * b[i] + answer;
        }
        return answer;
    }
}
728x90
반응형