반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12941
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
두 개의 배열이 주어지고 두 배열을 곱하였을 때 나올 수 있는 최솟값을 구하는 문제입니다.
최솟값은 A의 가장 큰 값과 B의 가장 작은 값이 곱해졌을 때 구할 수 있습니다.
(A의 가장 작은 값과 B의 가장 큰 값도 마찬가지로 매칭되어야 합니다.)
Arrays.sort(A);
Arrays.sort(B);
따라서 우선 두 개의 배열을 초기화해주었습니다.
그다음은 이제 가장 큰 값과 가장 작은 값이 매칭될 수 있도록 하여 곱하였습니다.
for (int i = 0; i < n; i++) {
answer += A[i] * B[n - 1 - i];
}
테스트 진행 결과 정상 동작 하였고, 테스트 통과하였습니다.
전체적인 코드입니다.
public static void main(String[] args) {
int[] A = {1, 4, 2};
int[] B = {5, 4, 4};
System.out.println("solution(A,B) = " + solution(A, B));
}
public static int solution(int[] A, int[] B) {
int answer = 0;
int n = A.length;
Arrays.sort(A);
Arrays.sort(B);
for (int i = 0; i < n; i++) {
answer += A[i] * B[n - 1 - i];
}
return answer;
}
반응형
'CodingTest' 카테고리의 다른 글
[프로그래머스] JadenCase 문자열 만들기 (0) | 2023.05.01 |
---|---|
[프로그래머스] 이진 변환 반복하기 (0) | 2023.04.28 |
[백준][11399] ATM (1) | 2022.10.05 |
[백준] 코드 제출 필수 내용 (0) | 2022.09.29 |
[백준][2839] 설탕 배달 (1) | 2022.09.29 |