상세 컨텐츠

본문 제목

[리트코드] A Better Repeated Deletion Algorithm

Programming/Algorithm

by 겨리! 2023. 4. 10. 23:41

본문

 

 

문제는 아니고 정답 해설이지만 two pointer 알고리즘을 사용해서 푸는 방법을 다시 익힐겸 정리해본다.

 

https://leetcode.com/explore/learn/card/fun-with-arrays/511/in-place-operations/3255/

 

Account Login - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

 

중복 값이 아닌 원소만 체크하는 문제에서 two-pointer 알고리즘을 사용하면 간단하게 풀 수 있다!

 

/**
 * @param {number[]} arr
 * @returns {number}
 */
const removeDuplicates = function(arr) {
    // A Better Repeated Deletion Algorithm - Answer
    // two-pointer 알고리즘 사용
    // writerPointer와 readPointer를 두개 두고 사용한다.

    // edge case 체크 
    if(arr.length === 0) return 0;
    
    let writePointer = 1;
    for(let readPointer = 1; readPointer < arr.length; readPointer++){
      // readPointer를 사용해서 다른 원소를 비교할 것임(이전 원소)
      if(arr[readPointer] !== arr[readPointer-1]){
        // 숫자가 다르면 덮어쓰기 
        arr[writePointer] = arr[readPointer];
        
        // 개수만 체크하는거니까! 이렇게 처리해줘도됨
        writePointer++;
      }
    }
    console.log(arr)
    return writePointer;
  };

'Programming > Algorithm' 카테고리의 다른 글

[프로그래머스] 달리기 경주  (0) 2023.04.14
[프로그래머스] 덧칠하기  (0) 2023.04.12
[프로그래머스] 공원 산책  (0) 2023.04.04
[리트코드] Remove Element  (0) 2023.03.31
[리트코드] Duplicate Zeros  (0) 2023.03.30

관련글 더보기

댓글 영역