
https://school.programmers.co.kr/learn/courses/30/lessons/120862
정수 배열 numbers가 주어졌을 때 원소 중 2개를 곱해서 만들 수 있는 최댓값을 리턴하는 문제다.
내 생각은 간단했다. 최대 양수 2개와 최저 음수 2개의 곱 중에 누가 더 클지 비교해서 큰 값을 반환하는 것이었다.
하지만 indexOutof~ 예외가 발생하면 어떻게 하지? 했지만
이 문제의 제한사항을 보고 확신을 가지고 문제를 풀었다.
2 ≤ numbers 의 길이 ≤ 100
그렇다는 것은 최소한 배열에는 2개의 요소가 있으니 내 생각대로 해도 인덱스가 범위를 벗어나지는 않겠다.
import java.util.*;
class Solution {
public int solution(int[] numbers) {
Arrays.sort(numbers);
int left = numbers[0] * numbers[1];
int right = numbers[numbers.length -1] * numbers[numbers.length-2];
return Math.max(left, right);
}
}