반응형
`최댓값 만들기 (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)
반응형
'algorithm' 카테고리의 다른 글
[프로그래머스]가장 큰 수 찾기 - java,python (0) | 2023.03.08 |
---|---|
[프로그래머스]인덱스 바꾸기 - java,python (0) | 2023.03.08 |
[프로그래머스]n의 배수 고르기- java,python (0) | 2023.03.08 |
[프로그래머스]특정 문자 제거하기 - java, python (0) | 2023.03.03 |
[프로그래머스]숨어있는 숫자의 덧셈 (1) - java, python (1) | 2023.03.03 |
댓글