Google 태그 관리자 아이콘

알고리즘 풀이

.leetcode(27. Remove Element)

silvergoni 2022. 4. 26. 06:49
반응형

https://leetcode.com/problems/remove-element/

 

2. 2022/04/26 시도

소요시간: 3분

class Solution {
    public int removeElement(int[] nums, int val) {
        int index = 0;
        for (int i=0; i<nums.length; i++) {
            if (nums[i] == val) {
                continue;                
            }
            
            nums[index++] = nums[i];
        }
        
        return index;
    }
}

풀이 접근 과정

같은 숫자일 때는 넘어가고 아닐 때는 index를 증가시켜주면서 대입한다.

 

느낀점

  • 푼지 며칠 안되었는데 그래도 그때보다 코드가 더 깔끔해져서 좋다.

 


 

 

1. 2022.04.16 시도

소요시간: 30분

class Solution {
    public int removeElement(int[] nums, int val) {
        int counter = 0;
        for (int i=0; i<nums.length-counter;) {
            if (nums[i+counter] == val) {
                counter++;
                continue;
            }
            
            nums[i] = nums[i+counter];
             i++;
        }
        
        return nums.length-counter;
    }
}

풀이 접근 과정

제거할 숫자크기만큼 리턴 길이를 정해주기위해 counter를 세팅한다.

인덱스를 순회하면서 val이랑 같은 경우는 제거한 숫자 갯수인 counter만 증가시키고 리턴한다.

제거할 숫자가아니면 세팅을 해주고 하나씩 인데스를 더해준다.

 

느낀점

  • 알고리즘을 짤때는 counter와 배열에 값을 세팅해주는걸 나누었다. 그렇게 하는게 헷갈리지 않는다.
  • 한번에 로직을 짜려다가 오히려 시간이 많이 걸렸다.

알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)

반응형