링크
배열에서 중복 요소 제거 (최대2개)
class Solution {
func removeDuplicates(_ nums: inout [Int]) -> Int {
var resultIndex = 1
var duplicates = 0
for (index, num) in nums.enumerated() {
if index == 0 {
continue
}
if num != nums[resultIndex - 1] {
nums[resultIndex] = num
resultIndex += 1
duplicates = 0
} else {
duplicates += 1
if duplicates < 2 {
nums[resultIndex] = num
resultIndex += 1
}
}
}
return resultIndex
}
}
class Solution {
func removeDuplicates(_ nums: inout [Int]) -> Int {
// 배열이 비어있거나 요소가 1개 또는 2개만 있는 경우 바로 반환
if nums.count <= 2 {
return nums.count
}
// 결과 인덱스를 2로 시작 (처음 두 요소는 항상 유효)
var resultIndex = 2
// 세 번째 요소부터 순회
for i in 2..<nums.count {
// 현재 요소가 결과 배열의 두 칸 전 요소와 다르면 추가
if nums[i] != nums[resultIndex - 2] {
nums[resultIndex] = nums[i]
resultIndex += 1
}
}
return resultIndex
}
}