💬 문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
🚫 제한 사항
- -10,000 ≤ numbers의 원소 ≤ 10,000
- 2 ≤ numbers 의 길이 ≤ 100
📢 입출력 예
👨🏫 입출력 예 설명
📃 제출 코드
class Solution {
public int solution(int[] numbers) {
int answer = Integer.MIN_VALUE;
for (int i = 0; i < numbers.length; i++) {
for (int j = i + 1; j < numbers.length; j++) {
int temp = numbers[i] * numbers[j];
if (answer < temp) {
answer = temp;
}
}
}
return answer;
}
}
✏ 해결방법 & 배운점
주어진 문제는 정수 배열 `numbers`에서 두 원소를 곱해 만들 수 있는 최대값을 찾는 문제입니다. 이를 해결하기 위해 이중 반복문을 사용하여 배열의 모든 가능한 원소 쌍을 곱한 후, 그 중 가장 큰 값을 찾는 방법을 사용하였습니다.
++ 코드를 작성하고 테스트를 해보았는데 7번 케이스의 반례가 있었습니다.
`answer = 0` 으로 초기화할 경우 numbers 의 원소가 [-2 , 2] 일경우 정답은 -2가 출력되는것이 아닌 0 이 출력되 `answer`의 초기값을 `Integer.MIN_VALUE`로 초기화를 하였습니다.
'PS > 프로그래머스 입문 100제' 카테고리의 다른 글
[프로그래머스] LV.0 인덱스 바꾸기 - 자바 [55/100] (0) | 2024.06.25 |
---|---|
[프로그래머스] LV.0 직각삼각형 출력하기 - 자바 [54/100] (0) | 2024.06.25 |
[프로그래머스] LV.0 주사위의 개수 - 자바 [52/100] (0) | 2024.06.25 |
[프로그래머스] LV.0 369게임 - 자바 [51/100] (0) | 2024.06.25 |
[프로그래머스] LV.0 문자열 정렬하기 (2) - 자바 [50/100] (0) | 2024.06.25 |