하루에 한 문제

[프로그래머스] 최솟값 만들기 -Java 본문

알고리즘/프로그래머스

[프로그래머스] 최솟값 만들기 -Java

dkwjdi 2020. 12. 17. 17:47

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

 

코딩테스트 연습 - 최솟값 만들기

길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱

programmers.co.kr

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

소요시간 : 5분

 

A,B각 요소를 곱해서 누적합이 가장 작게 만들기 위해서는 A의 가장 큰 값과 B의 가장 작은 값을 곱해주면 됩니다!

 

우선 A와 B를 모두 정렬시킵니다

그리고  A는 앞쪽부터 B는 뒤쪽부터 오면서 서로를 곱해서 answer에 더해주면 끝입니다.

Comments