반응형
사이트명 : 프로그래머스(Programmers)
문제명 : 최솟값 만들기
언어 : 자바(Java)
두 배열을 가지고
A배열의 값, B배열의 값을 곱했을 때
최소값이 나오는 경우를 구해야 하는데
1*5, 4*2, 4*4 이런식으로 한번씩만 곱할 수 있다
근데 문제를 슥 보면 결국 최솟값을 구하는 방법은
A배열 최대값 * B배열 최솟값 이런 식으로 곱한 뒤 더해주면 된다는 사실을 알 수 있는데
내 풀이방법은 아래와 같다
일단 A배열과 B배열을 정렬한 뒤
A배열은 0부터 진행해 최대값 B배열은 끝부터 진행해 최솟값을 가져와서 곱해준 뒤
이 값들을 더해서 반환하면 된다
프로그래머스에 바로 적용 가능한 코드는 아래와 같다
import java.util.Arrays;
class Solution
{
public int solution(int []A, int []B)
{
int answer = 0;
int j = B.length - 1;
Arrays.sort(A);
Arrays.sort(B);
for(int i = 0; i<A.length; i++) {
answer = answer + (A[i] * B[j]);
j--;
}
return answer;
}
}
반응형
'Language > 알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스 전화번호 목록(Java) (0) | 2019.09.17 |
---|---|
프로그래머스 숫자의 표현(Java) (0) | 2019.09.17 |
프로그래머스 올바른 괄호(Java) (0) | 2019.09.17 |
프로그래머스 핸드폰 번호 가리기(Java) (0) | 2019.09.16 |
프로그래머스 하샤드 수(Java) (0) | 2019.09.16 |
댓글