최솟값 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12941
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
import java.util.*;
class Solution
{
public int solution(int []A, int []B)
{
int answer = 0;
Arrays.sort(A);
Arrays.sort(B);
for(int i = 0; i < A.length; i++){
answer += A[i] * B[A.length -1 - i];
}
return answer;
}
}
- 기본적으로 최솟값이 나오기 위해선 “최대의 수”와 “최소의 수”가 항상 곱해져야 한다는 아이디어다.
- 이는 수학의 재배열 부등식(Rearrangement Inequality)라는 원리로 증명된다.
- 따라서 두 배열을 정렬한다음 한 배열을 역순으로 탐색해주면 된다.
'Java.APS > APS.Programmers' 카테고리의 다른 글
[Programmers] JadenCase 문자열 만들기 (2) | 2023.12.03 |
---|---|
[Programmers] 최댓값과 최솟값 (1) | 2023.12.03 |
[Programmers] Lv 2. [PCCP 기출문제]2번] (1) | 2023.11.28 |
[Programmers] Lv 0.카운트 다운 (1) | 2023.11.27 |
[Programmers] 문자열 붙여서 출력하기 (1) | 2023.11.27 |