최댓값 만들기 1 (with.Java)
“최댓값 만들기 1” 문제에 대하여 알아본 글입니다.
코딩 테스트 문제를 풀며, 풀었던 문제에 대한 회고와 다른 풀이 방법을 알아보며, 알아가고자 합니다.
문제에 대해 먼저 알아보겠습니다.
문제
정수 배열 numbers가 매개변수로 주어집니다.
numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
제한사항
- 0 ≤ numbers의 원소 ≤ 10,000
- 2 ≤ numbers의 길이 ≤ 100
입출력 예시
numbers | result |
---|---|
[1, 2, 3, 4, 5] | 20 |
[0, 31, 24, 10, 1, 9] | 744 |
문제에 대한 나의 풀이
import java.util.*;
class Solution {
public int solution(int[] numbers) {
int answer = 1;
Arrays.sort(numbers);
int endIdx = numbers.length - 1;
for(int i = endIdx; i >= endIdx - 1; i--){
answer *= numbers[i];
}
return answer;
}
}
풀이 설명
- Arrays.sort(numbers): 배열을 정렬한다.
- endIdx: 배열의 마지막 인덱스를 계산한다.
- for 문을 이용하여 가장 큰 두 숫자를 선택하고 곱한다.
코드 장점
- 정렬을 활용: 정렬을 통해 가장 큰 숫자를 빠르게 선택할 수 있다.