문제
https://programmers.co.kr/learn/courses/30/lessons/12941
코딩테스트 연습 - 최솟값 만들기
길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱
programmers.co.kr
풀이
문제를 풀기위한 알고리즘은 따로 필요하지 않았다.
우리가 구해야하는 값은 각 배열 원소의 곱의 최솟값이므로 하나의 배열은 오름차순, 하나의 배열은 내림차순 정렬하여 각 원소들을 곱해주면 최솟값을 구할 수 있다.
코드
import java.util.Arrays;
class Solution
{
public int solution(int []A, int []B)
{
int answer = 0;
Arrays.sort(A);
reverseSort(B);
for(int i = 0; i < A.length; i++) {
answer += A[i] * B[i];
}
return answer;
}
void reverseSort(int[] arr) {
Arrays.sort(arr);
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
}
}
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 프로그래머스 Level1 같은 숫자는 싫어 C++ (0) | 2022.05.19 |
---|---|
[프로그래머스] 프로그래머스 Level2 땅따먹기 Java (0) | 2022.05.18 |
[프로그래머스] 프로그래머스 Level1 [1차] 비밀지도 Java (카카오 코딩테스트) (0) | 2022.05.12 |
[프로그래머스] 프로그래머스 Level1 실패율 Java (카카오 코딩테스트) (0) | 2022.05.06 |
[프로그래머스] 프로그래머스 Level1 모의고사 Java (0) | 2022.05.06 |