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

김승연·2021년 2월 14일
0

알고리즘스터디

목록 보기
3/11

문제설명

주어지는 길이가 같은 두 배열에서 숫자 한개씩을 뽑아 두 수를 곱한값을 누적하여 최솟값을 구한다.(중복해서 뽑을 수 없다)

문제 풀이 방법

두 배열을 정렬한다.
작은 숫자와 큰 숫자를 곱해서 더한 값이 최소값이 된다.

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문으로 작성했는데 오류가 났다.. 왜그런지 이유를 몰라 한참을 헤매다 혹시나 해서 바꿔봤는데 맞았다. 인덱스 하나씩 꺼내서 반복작업을 하는데 왜 안되는지는 이유를 모르겠다.

profile
Doing nothing cause nothing to happen.

0개의 댓글