본문 바로가기
algorithm

[프로그래머스]최댓값 만들기 (2) - java, python

by skysline 2023. 3. 8.
반응형

`최댓값 만들기 (2)`

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. 

numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return 하도록 solution 함수를 완성해 주세요.

입출력 예


입출력 예 #1

  • 두 수의 곱중 최댓값은 -3 * -5 = 15입니다.

입출력 예 #2

  • 두 수의 곱중 최댓값은 10 * 24 = 240입니다.

입출력 예 #3

  • 두 수의 곱중 최댓값은 20 * 30 = 600입니다.

java code

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

1. 배열을 오름차순으로 정렬한다

자연스럽게 왼쪽엔 제일 작은 수 오른쪽엔 제을 큰 수가 자리 잡는다.

2. 배열의 왼쪽 제일 작은 수들과 오른쪽 제일 큰 수들을 곱한다

3. 곱한 수 중 제일 큰 수를 반환한다. 

python code

def solution(numbers):
    numbers.sort()
    answer = numbers[0]*numbers[1]
    answer1 = numbers[-1] * numbers[-2]
    return max(answer,answer1)

반응형

댓글