프로그래머스/[프로그래머스 - JAVA] Lv.0
[프로그래머스 - JAVA] 최댓값 만들기(2)
코딩하는 흰둥이
2023. 3. 10. 14:15
- 내 풀이( 제출 테스트 1개 실패)
class Solution {
public int solution(int[] numbers) {
int answer = 0;
int result = 0;
for(int i = 0; i < numbers.length; i++){
for(int j = i+1; j < numbers.length; j++){
result = numbers[i] * numbers[j];
if(answer < result){
answer = result;
}
}
}
return answer;
}
}
- 변경 풀이
import java.util.Arrays;
class Solution {
public int solution(int[] numbers) {
int answer = 0;
int result = 0;
Arrays.sort(numbers);
int min = numbers[0] * numbers[1];
int max = numbers[numbers.length - 1] * numbers[numbers.length-2];
if (min > max){
answer = min;
}else {
answer = max;
}
return answer;
}
}
배열에는 음수와 양수가 섞여 있기 때문에 정렬을 해주고 처음과 마지막 곱의 값을 비교해준다
처음 풀이는 너무 어렵게 생각했다 for문을 두번 돌리려고하니 괜히 더 복잡해진다.
- 다른 사람 풀이
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 함수를 이용한 풀이
테스트를 제출하기 전에 메소드와 함수를 좀 더 생각해보고 코드를 짜봐야겠다.