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

이은정·2024년 8월 14일

프로그래머스/Java

목록 보기
10/74

문제

로직

a와 b에서 각각 뽑은 두 수를 곱한 값의 누적이 최소가 되게 하려면 a의 최솟값, b의 최댓값을 순서대로 뽑아야 한다.

  1. 배열 a와 b의 정렬을 진행한다.
  2. a 배열의 i 번째 인덱스와 b의 (b.length-i-1) 번째 인덱스의 값을 곱한다.
  3. 두 수를 곱한 후 answer에 더한다.

코드

import java.util.*;

class Solution
{
    public int solution(int []A, int []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;
    }
}

결과

막힌 점

처음에는 a는 오름차순 정렬, b는 내림차순 정렬을 진행하려 하였으나 내림차순으로 정렬하는 함수를 까먹어서 위와 같은 방식으로 진행하게 되었다.
이 문제의 경우는 오름차순만을 이용해서도 풀 수 있지만 만약을 위해서 내림차순으로 정렬하는 함수도 외울 필요가 있을 것 같다.

profile
돈 많은 백수가 꿈인 백엔드 개발자 지망생

0개의 댓글