728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/12941
풀이
두 배열 중 하나는 오름차순 정렬, 남은 하나는 내림차순 정렬한 뒤 같은 인덱스끼리 곱한 합이 최솟값이다.
import java.util.*;
class Solution {
public int solution(int []A, int []B) {
int answer = 0;
//reverseOrder() 를 사용하려면 래퍼 타입이어야하기 때문에 int[] -> Integer[] 변환
//boxed() : 프리미티브 타입을 래퍼 타입으로 박싱한 스트림을 만들어준다.
Integer[] BB = Arrays.stream(B).boxed().toArray(Integer[]::new);
Arrays.sort(A);
Arrays.sort(BB, Collections.reverseOrder());
for(int i = 0; i < A.length; i++) {
answer += A[i]*BB[i];
}
return answer;
}
}
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] n진수 게임 - 자바(Java), 2018 KAKAO BLIND RECRUITMENT (0) | 2022.01.12 |
---|---|
[프로그래머스] 땅따먹기 - 자바(Java), DP(Dynamic Programming) (0) | 2022.01.10 |
[프로그래머스] 피보나치 수 - 자바(Java), 메모이제이션 (0) | 2022.01.04 |
[프로그래머스] 카펫 - 자바(Java) (0) | 2022.01.03 |
[프로그래머스] 튜플 - 자바(Java), 2019 카카오 개발자 겨울 인턴십 (0) | 2021.10.22 |
댓글