[Array / String] Remove Element

Yongki Kim·2023년 8월 24일
0
post-thumbnail

27. Remove Element

지문은 링크에서 확인해주세요.

1. 해답을 보지 않고 스스로 문제를 해결한 과정

/**
 * @param {number[]} nums
 * @param {number} val
 * @return {number}
 */
var removeElement = function(nums, val) {
  while(nums.indexOf(val) > -1) {
    const idx = nums.indexOf(val);
    nums.splice(idx, 1);
  }

  return nums.length;
};

nums1의 요소를 in-place하게 제거하는 방법은 JS배열에서 제공하는 splice 메소드 사용이라고 직관적으로 떠올랐습니다.

2. 해답을 찾아서 자신이 작성한 알고리즘에 대해서 회고한 내용

Using counter variable

해답의 전문은 링크를 확인해주세요.

function removeElement(nums, val) {
  // Counter for keeping track of elements other than val
  let count = 0;
  // Loop through all the elements of the array
  for (let i = 0; i < nums.length; i++) {
    // If the element is not val
    if (nums[i] !== val) {
        nums[count++] = nums[i];
    }
  }
  return count;
}

시간복잡도 측면에서 필자(O(n²))보다 나은 성능을 보여준 해답(O(n))입니다.

0개의 댓글