최솟값 만들기

이리·2025년 1월 4일
0
post-thumbnail

문제: https://school.programmers.co.kr/learn/courses/30/lessons/12941

문제 설명

  • 주어진 파라미터: int[] A, int[] B
  • 반환값: int
  • A와 B 배열에서 각각 한개의 숫자를 뽑아 두 수를 곱한다.
  • 배열의 길이만큼 반복하고, 누적 곱을 더한다.
  • 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표
  • 중복 뽑기 불가능

풀이방식

  1. 두 배열을 정렬하고 가장 큰값 * 가장 작은값으로 곱한다.
  2. 합을 구해 return

코드

import java.util.*;

class Solution
{
    public int solution(int []A, int []B)
    {
        int len = A.length;
        Arrays.sort(A);
        Arrays.sort(B);
        int answer = 0;
        
        for(int i = 0; i < len; i++){
            answer += A[i] * B[len-1-i];
        }
        
        return answer;
    }
}

0개의 댓글