[프로그래머스] 최댓값 만들기

이아현·2023년 6월 1일
0

코딩테스트

목록 보기
6/31
post-thumbnail

✅ 첫 번째 풀이

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;
}
profile
PM을 지향하는 FE 개발자 이아현입니다 :)

0개의 댓글