주어지는 길이가 같은 두 배열에서 숫자 한개씩을 뽑아 두 수를 곱한값을 누적하여 최솟값을 구한다.(중복해서 뽑을 수 없다)
두 배열을 정렬한다.
작은 숫자와 큰 숫자를 곱해서 더한 값이 최소값이 된다.
public class 최솟값만들기 {
public static int solution(int []A, int []B)
{
int answer = 0;
int j = B.length-1;
Arrays.sort(A);
Arrays.sort(B);
for (int i=0; i<A.length; i++) {
answer=answer+(A[i]*B[j]);
j--;
}
return answer;
}
}
여기서 나의 실수는 향상된 for문으로 작성했는데 오류가 났다.. 왜그런지 이유를 몰라 한참을 헤매다 혹시나 해서 바꿔봤는데 맞았다. 인덱스 하나씩 꺼내서 반복작업을 하는데 왜 안되는지는 이유를 모르겠다.