문제
나의 생각
배열에 있는 값들을 서로 곱할 수 있게 2중 for문을 사용.
2번째 for문의 경우 i + 1 값에서 시작하게 하여 중복된 index값으로 계산이 안되게 접근.
index가 0,1 일 경우 -1 값을 가졌을 때 answer 조건에 맞지 않을 수 있음. (if 문으로 처리)
나의 답안
public static int solution(int[] numbers) {
int answer = 0;
if (numbers.length == 2){
answer = numbers[0] * numbers[1];
}
for (int i = 0 ; i < numbers.length; i ++) {
for (int j = i+1 ; j < numbers.length; j ++){
System.out.printf("%d : %d = %d \n", numbers[i] , numbers[j], numbers[i] * numbers[j]);
if ( numbers[i] * numbers[j] > answer){
answer = numbers[i] * numbers[j];
}
}
}
return answer;
}
다른 답안
배열에 있는 index 0,1 값과 index 마지막값 + 마지막 값 -1 값을 기준으로 해서 더 높은 값을 산출해내는 방식으로 접근했다. 개념을 파악하고 다음에 적용가능토록 해야겠다.
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]);
}
}
'Programmers 문제풀이 > Lv.0' 카테고리의 다른 글
가장 큰 수 찾기 (0) | 2023.02.27 |
---|---|
배열 회전시키기 (0) | 2023.02.27 |
주사위의 개수 (0) | 2023.02.27 |
n의 배수 고르기 (0) | 2023.02.27 |
직각삼각형 출력하기 (0) | 2023.02.27 |