최솟값 만들기

최솟값 만들기

코딩테스트 연습 - 최솟값 만들기 | 프로그래머스 (programmers.co.kr)

풀이)

접근)

두 배열의 임의의 값들을 곱한값들의 합이 최소가 되려면 큰 수가 작은 수와 곱해져야 한다고 생각했다.

알고리즘)

A배열은 오름차순으로 B배열은 내림차순으로 정렬한다.

A[i] * B[i]의 값을 더한다 ( i = 1 ~ n까지 반복)

코드

import java.util.*; class Solution { public int solution(int []A, int []B) { int answer = 0; Arrays.sort(A); Integer[] B1 = new Integer[B.length]; for(int i =0 ;i < B.length;i++) { B1[i] = B[i]; } Arrays.sort(B1,Collections.reverseOrder()); for(int i = 0; i < A.length;i++) { System.out.printf("A = %d B = %d

",A[i],B[i]); answer += A[i] * B1[i]; } return answer; } }

from http://sy4406.tistory.com/39 by ccl(A) rewrite - 2021-09-13 05:02:04