Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 배열에서 인접한 두 요소의 최대 곱 구하기


문제 개요

숫자로 구성된 배열을 입력받는 JavaScript 함수를 작성해야 합니다. 이 함수는 배열 안에서 인접한 두 숫자를 곱했을 때 얻을 수 있는 최댓값(최대 곱)을 찾아 반환해야 합니다.

예제 코드

다음은 이 문제를 해결하는 전체 코드입니다 −

const arr = [9, 5, 10, 2, 24, -1, -48];

function adjacentElementsProduct(array) {
    let maxProduct = array[0] * array[1];
    for (let i = 1; i < array.length - 1; i++) {
        const product = array[i] * array[i + 1];
        if (product > maxProduct) {
            maxProduct = product;
        }
    }
    return maxProduct;
}

console.log(adjacentElementsProduct(arr));

출력 결과

50

코드 동작 원리

  • 초기화: 배열의 첫 번째 요소와 두 번째 요소의 곱(array[0] * array[1])을 초기 최댓값으로 설정합니다.
  • 순회: 반복문을 통해 배열을 탐색하면서 각 위치에서 인접한 두 요소의 곱을 계산합니다.
  • 비교 및 갱신: 새로 계산한 곱이 기존 최댓값보다 크면 최댓값을 갱신합니다.
  • 반환: 모든 탐색이 끝나면 최종적으로 구해진 최대 곱을 반환합니다.

예제 분석

입력 배열 [9, 5, 10, 2, 24, -1, -48]에서 인접한 요소들의 곱을 하나씩 계산해 보면 다음과 같습니다.

  • 9 × 5 = 45
  • 5 × 10 = 50 (최댓값)
  • 10 × 2 = 20
  • 2 × 24 = 48
  • 24 × (-1) = -24
  • -1 × (-48) = 48

따라서 최종 결과는 50이 됩니다.

시간 복잡도

이 알고리즘은 배열을 한 번만 순회하므로 시간 복잡도는 O(n)이며, 추가 메모리를 거의 사용하지 않아 공간 복잡도 역시 O(1)로 매우 효율적입니다.