본문 바로가기
LeetCode

1588. Sum of All Odd Length Subarrays

by 싼쵸 2022. 6. 15.
반응형

문제

배열의 개수가 홀수 일 때만 그 안에 값들을 더하는 문제다.

현재 풀이

/**
 * @param {number[]} arr
 * @return {number}
 */
var sumOddLengthSubarrays = function(arr) {
    let sum = 0
  for(let i = 0; i < arr.length; i++){
      for(let j = i; j <=arr.length; j++){
    let newArr = arr.slice(i,j)
    
          if(newArr.length %2 === 1){
              console.log('newArr',newArr)
              for(let i of newArr){
                    sum+=i                  
              }

    }      
  newArr = [];
          
    }
      
  }
    return sum
};

풀이하는 데 40분정도 걸렸다. 일단 문제 접근에 대한 방향성이 떠오르지 않아서 꽤 고민했고, 힌트를 보고 나서 방향을 잡았지만, slice함수 인자에 대한 이해도가 부족해 더 오래 걸렸다. 결국 함수 사용법만 제대로 파악했어도.... 사용하기 전에 MDN을 잘 읽고 사용하자 ㅠㅠ

그래도 교훈을 하나 배웠다.

end는 미포함 !!! 기억하자

예전 풀이

var sumOddLengthSubarrays = function(arr) {
  const odd = [];
  let count = 0;
 for(let i =0;  i < arr.length; i++){
     for(let j = i; j < arr.length; j++){
         
         odd.push(arr[j]);
         console.log(odd)
         if(odd.length % 2 !== 0){
             for(let val of odd ){
                 count+=val;
             }
         }
     }
    odd.length = 0;
 }
    return count
};

예전에 풀었을 때는 push를 사용해서 풀었네요 ㅋㅋㅋ

 

다른 사람 풀이

var sumOddLengthSubarrays = function(arr) {
    
    let count=0;
    
    for(let i=0;i<arr.length;i++){ // helping in selecting the starting point
        
        for(let j=i;j<arr.length;j++){  // helping in selecting the endpoint point
		
            if((i-j)%2==0){  // so that it only count the subarrays which have odd length
			
				for(let k=i;k<=j;k++){ // looping from start point to end point and adding them
					count+=arr[k];
				}
            }
        }
    }
    return count;
};

이 풀이보다 더 인기 좋은 풀이가 있었지만, 이해가 안 가서 내가 이해할 수 있는 풀이를 가져왔다. 내가 처음에 접근했던 풀이 방식과 같은데 왜 나는 이 생각을 하지 못했을까 ㅋㅋㅠㅠ 기죽지 마라 재현아

 

결과

반응형

'LeetCode' 카테고리의 다른 글

1688. Count of Matches in Tournament  (0) 2022.06.21
1791. Find Center of Star Graph  (0) 2022.06.13
1773. Count Items Matching a Rule  (0) 2022.06.13
1859. Sorting the Sentence  (0) 2022.06.12
1221. Split a String in Balanced Strings  (0) 2022.06.10

댓글