- 내 풀이( 제출 테스트 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 함수를 이용한 풀이
테스트를 제출하기 전에 메소드와 함수를 좀 더 생각해보고 코드를 짜봐야겠다.
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] 배열 회전시키기 (0) | 2023.03.10 |
---|---|
[프로그래머스 - JAVA] 인덱스 바꾸기 (0) | 2023.03.10 |
[프로그래머스 - JAVA] 직각삼각형 출력하기 (0) | 2023.03.10 |
[프로그래머스 - JAVA] 주사위의 개수 (0) | 2023.03.10 |
[프로그래머스 - JAVA] n의 배수 고르기 (0) | 2023.03.10 |
댓글