✅ 첫 번째 풀이
function solution(numbers) {
var answer = 0;
var res = [];
for (let i=0; i<numbers.length; i++) {
for (let j=0; j<numbers.length; j++) {
if (i != j) {
res.push(numbers[i]*numbers[j])
} else {
continue
}
}
}
for (let k=0; k<res.length; k++) {
if ( answer < res[k]) {
answer = res[k];
}
}
return answer;
}
- 접근 방법
numbers
의 원소 중 두 개를 골라서 곱한 값들을 res
에 다 push하고 res
를 돌면서 answer
의 값과 비교하여 최대값을 찾고자했다.
- 첫 번째 풀이의 문제점
- 계속 한 개의 test case가 맞지 않았다.
answer
의 값을 0으로 지정해두었기 때문에 만약 최대값이 음수인 경우 답이 0으로 출력되기 때문에 생기는 문제였다.
- 그래서
answer
의 초기값을 -Infinity
로 줬다.
✅ 최종 풀이
function solution(numbers) {
var answer = -Infinity;
var res = [];
for (let i=0; i<numbers.length; i++) {
for (let j=0; j<numbers.length; j++) {
if (i != j) {
res.push(numbers[i]*numbers[j])
}
}
}
for (let k=0; k<res.length; k++) {
if ( answer < res[k]) {
answer = res[k];
}
}
return answer;
}