문제

풀이
import java.util.*;
class Solution
{
public int solution(int []A, int []B)
{
int answer = 0;
Arrays.sort(A);
Integer[] b = Arrays.stream(B).boxed().toArray(Integer[]::new);
Arrays.sort(b, Collections.reverseOrder());
for(int i = 0; i < A.length; i++){
answer += A[i]*b[i];
}
System.out.print(answer);
return answer;
}
}
int 배열은 Collections.reverseOrder() 사용 불가 -> 객체가 아니기 때문
Integer로 변환해준다.
Integer[] b = Arrays.stream(B).boxed().toArray(Integer[]::new);
sort 해준 후
A 가장 작은 값 * B 가장 큰 값 + .. A 가장 큰 값 * B 가장 작은 값..
이렇게 합을 구하면 최소가 된다.
저렇게 할 필요 없이
Arrays.sort() 만 진행한 후 B는 A.length-i-1 이런식으로 해도 됨.
'코딩' 카테고리의 다른 글
| 창의융합종합설계2 회고록 (feat. Java, SpringBoot, Amazon EC2, Amazon S3, Redis, Docker) (0) | 2024.09.17 |
|---|---|
| 창의융합종합설계1 회고록 (feat. Java, SpringBoot, Amazon EC2, Amazon S3, Redis, Docker) (1) | 2023.12.22 |
| Colab에서 oxflower17 데이터셋 불러오기(구글 드라이브 이용) (1) | 2023.10.06 |
| [멋사]🦁멋쟁이사자처럼 11기 중앙해커톤 회고록🦁 (0) | 2023.10.04 |
| [멋사]🦁멋쟁이사자처럼 11기 교내해커톤 회고록🦁 (2) | 2023.10.04 |