인프런 커뮤니티 질문&답변

Kar님의 프로필 이미지
Kar

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 최대 매출(Sliding Window)

splice를 사용해서 문제를 풀어봤습니다

작성

·

148

0

splice를 사용해서 문제를 풀어봤는데 이렇게 풀어도 될까요..?

function solution(k, arr) {
  let max = 0;

  for (let i = 0; i < arr.length; i++) {
    const arrCopy = [...arr];
    const sum = arrCopy.splice(i, k).reduce((a, b) => a + b);
    max = Math.max(max, sum);
  }
  return max;
}

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

위에 코드도 reduce가 i저점부터 k번을 반복문처럼 반복하기 때문에 결국에는 

for (let i = 0; i < arr.length; i++) {
let sum=0;
for(let j=i; j<i+k; j++){
sum+=arr[j]

과 같은 시간복잡도 O(n^2)입니다. 이런문제는 슬라이딩 윈도우로 하는 습관을 들여 놓는게 좋습니다.

Kar님의 프로필 이미지
Kar

작성한 질문수

질문하기