예시
- input : [0, 0, 1]
- 0, 0 : 중복! (repeat = 1)
- 0, 1 ; nums[2 - 1] = nums[2] -> [0, 1, 1]
- return 3 - 1
class Solution {
fun removeDuplicates(nums: IntArray): Int {
var repeat = 0
for (i in 1 until nums.size) {
// 중복이 일어난 횟수 체크
if (nums[i] == nums[i - 1]) repeat++
// 현재 인덱스 - 중복이 일어난 횟수
else nums[i - repeat] = nums[i]
}
return nums.size - repeat
}
}
예시
- input : [0, 0, 1]
- 0 > nums[1 - 1] -> false
- 0 > nums[1 - 1] -> false
- 1 > nums[1 - 1] -> true, nums[1++] = 1
- return 2
class Solution {
fun removeDuplicates(nums: IntArray): Int {
val size = nums.size
if (size == 0) return 0
var index = 1
for (num in nums) {
// 증가하는 경우만 확인
if (num > nums[index - 1]) {
nums[index++] = num
}
}
return index
}
}