[프로그래머스] 최댓값 만들기(2) 문제 풀이(Java)

이하영·2023년 5월 28일
0

코딩테스트

목록 보기
14/21
post-thumbnail

✔ 문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.


✔ 제한사항

  1. -10,000 ≤ numbers의 원소 ≤ 10,000
  2. 2 ≤ numbers 의 길이 ≤ 100

💬 내 풀이

import java.util.*;

class Solution {
    public int solution(int[] numbers) {
        Arrays.sort(numbers);
        
        int max1=numbers[0]*numbers[1];
        int max2=numbers[numbers.length-2]*numbers[numbers.length-1];
        
        int answer=max1>max2?max1:max2;
        return answer;
    }
}
  • 정수 배열을 오름차순으로 정렬한다.
  • 두 수가 양수일 경우 가장 큰 수끼리 곱한다(max2).
  • 두 수가 음수일 경우 가장 작은 수끼리 곱한다(max1).
  • max1과 max2 중 큰 수가 answer

💬 다른 사람 풀이

import java.util.*;

class Solution {
    public int solution(int[] numbers) {
        int len = numbers.length;
        Arrays.sort(numbers);
        return Math.max(numbers[0] * numbers[1], numbers[len - 2] * numbers[len - 1]);
    }
}

Math.max() 메소드를 이용하면 최댓값을 구할 수 있다.

⭐ Math.max()

Math.max(A,B)
A와 B 중 최댓값을 반환한다.

profile
안녕하세요, 웹 개발자 이하영입니다!

0개의 댓글