LeetCode - 1313. Decompress Run-Length Encoded List

henu·2023년 9월 4일
0

LeetCode

목록 보기
43/186

Solution

var decompressRLElist = function(nums) {
    return nums.reduce((acc, cur, idx) => {
        if(idx % 2) {
            for(let i=0; i<nums[idx-1]; i++) {
                acc.push(cur)
            }
        } 
            return acc;
    }, [])
};

Explanation

생각보다 간단한 문제였다. 요구사항대로 차근차근 코드를 작성하면 된다. 간단히 요약하면

  • 짝수 인덱스의 요소값은 바로 뒤에 홀수 인덱스의 요소값의 반복횟수이다.

이 조건을 코드로 작성하면된다.

Other

var decompressRLElist = function(nums) {
  return nums.reduce(
    (acc, cur, i, arr) =>
      i % 2 ? [...acc, ...Array(arr[i - 1]).fill(cur)] : acc,
    []
  );
};

fill 메소드를 사용해서 for문을 대체할 수도 있다. 그리고 push 메소드 대신 Array 생성자를 이용해서 특정 길이의 새로운 배열을 생성해서 spread 연산자로 연결도 가능하다.

0개의 댓글