(Java)프로그래머스 - 최솟값 만들기

윤준혁·2024년 3월 21일

나의 풀이

import java.util.*;

class Solution
{
    public int solution(int []A, int []B)
    {
        int answer = 0;
        Arrays.sort(A); // 1
        Arrays.sort(B);

        for (int i = 0; i < A.length; i++) { // 2
            for (int j = A.length - i - 1; j >= 0; j--) { 
                answer += A[i] * B[j];
                break;
            }
        }
        
        return answer;
    }
}

과정

  1. A, B를 오름차순으로 정렬
  2. A는 정순, B는 역순으로 곱한 후, answer에 더하기(한쪽 배열에선 작은 값부터, 한쪽 배열에선 큰 값부터 곱한 후 더한것이 최솟값이다)

다른 사람 풀이

import java.util.Arrays;

class TryHelloWorld
{
    public int getMinSum(int []A, int []B)
    {
        Arrays.sort(A);
        Arrays.sort(B);

        int length = A.length;
        int answer = 0;

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

        return answer;
    }
}
  • for문을 중첩하지않고, length - 1 - i로 선언한 것이 참신하다

0개의 댓글