프로그래머스 최댓값 만들기 (2)

남궁진 (jinvicky)·2026년 4월 1일

Problem


https://school.programmers.co.kr/learn/courses/30/lessons/120862

Solution


정수 배열 numbers가 주어졌을 때 원소 중 2개를 곱해서 만들 수 있는 최댓값을 리턴하는 문제다.
내 생각은 간단했다. 최대 양수 2개최저 음수 2개의 곱 중에 누가 더 클지 비교해서 큰 값을 반환하는 것이었다.

하지만 indexOutof~ 예외가 발생하면 어떻게 하지? 했지만
이 문제의 제한사항을 보고 확신을 가지고 문제를 풀었다.

2 ≤ numbers 의 길이 ≤ 100

그렇다는 것은 최소한 배열에는 2개의 요소가 있으니 내 생각대로 해도 인덱스가 범위를 벗어나지는 않겠다.

Code


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);
    }
}
profile
문제를 차근차근 하나씩 해결하려고 합니다:)

0개의 댓글