Written by
java-style
on
on
최솟값 만들기
최솟값 만들기
코딩테스트 연습 - 최솟값 만들기 | 프로그래머스 (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