[leetcode] 27. Remove Element

Youn·2025년 3월 6일
0

Algorithm

목록 보기
39/41

문제 설명

링크
배열에서 특정 요소 제거

접근 1 - 뒤에서부터

  • 뒤에서부터 접근
  • remove, insert 해야하는 단점

코드 1

class Solution {
    func removeElement(_ nums: inout [Int], _ val: Int) -> Int {
        var length = 0
        for (index, num) in nums.reversed().enumerated() {
            if num != val {
                length += 1
                nums.remove(at: index)
                nums.insert(num, at: 0)
            }
        }
        return length
    }
}

접근 2 - 앞에서부터

  • 앞 k 까지만 비교한다고 했으므로 앞에넣어버리기

코드 2

class Solution {
    func removeElement(_ nums: inout [Int], _ val: Int) -> Int {
        var k = 0
        
        for (index, num) in nums.enumerated() {
            if num != val {
                nums[k] = num
                k += 1
            }
        }
        
        return k
    }
}
  • nums[i] 로 접근보다 nums.enumerated() 접근이 메모리 효율적
profile
youn

0개의 댓글

관련 채용 정보