주니어 기초 코딩공부/JAVA_programmers_코딩테스트
최댓값 만들기 (2)_programmers_lev00
jju_developer
2022. 12. 7. 15:17
728x90
<코딩 테스트>
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
<나의 풀이 과정>
우선, 가장 큰 수가 나오는 경우의 수를 생각 해봤을때 Array.sort()로 정렬을 한 후
마이너스들은 마이너스 끼리 곱해서 큰수가 나온 값을 따로 저장 하고
플러스중에서 가장 큰수 두개를 곱해서 따로 저장한 뒤 둘중 더 큰 값의 배열을 return 하도록 코딩하였습니다.
<나의 풀이 코드>
import java.util.Arrays;
class Solution {
public int solution(int[] numbers) {
int answer = 0;
Arrays.sort(numbers);
int num1 = numbers[0] * numbers[1];
int num2 = numbers[numbers.length - 1] * numbers[numbers.length - 2];
if (num1 < num2) {
answer = numbers[numbers.length - 1] * numbers[numbers.length - 2];
} else {
answer = numbers[0] * numbers[1];
}
return answer;
}
}
<다른사람 풀이 1>
import java.util.Arrays;
class Solution {
public int solution(int[] numbers) {
Arrays.sort(numbers);
return numbers[numbers.length-1] * numbers[numbers.length-2] < numbers[0] * numbers[1] ?
numbers[0] * numbers[1] : numbers[numbers.length-1] * numbers[numbers.length-2];
}
}
<다른사람 풀이 2>
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]);
}
}
728x90