이 글은 Obsidian에서 마이그레이션되었으며, 그 과정에서 AI의 도움을 받았습니다. 오류나 누락된 내용이 있다면 댓글로 알려주세요!
문제
Remove Duplicates from Sorted Array II - LeetCode
풀이
코드
// insertPos : 왼쪽에서 유니크한 숫자들을 모으는 포인터// readPos : 오른쪽에서 숫자들을 탐색하는 포인터function removeDuplicates(nums: number[]): number {if (nums.length <= 2) {// 길이가 2 이하이면 항상 유효하므로 배열 길이를 반환return nums.length;}let insertPos = 2; // 처음 두 개의 원소는 항상 유효하기 떄문에 새 값을 삽입할 위치는 인덱스 2부터for (let readPos = 2; readPos < nums.length; readPos++) {// 현재 읽고 있는 값이 결과 배열의 마지막 두 값 중 첫 번째 값과 다르다면// 지금까지 같은 숫자가 2번 이상 연속되지 않았다는 뜻 -> 유효한 숫자이므로 수집if (nums[readPos] !== nums[insertPos - 2]) {nums[insertPos] = nums[readPos];insertPos++;}// 유효하지 않다면 아무것도 하지 않고 넘어감}return insertPos; // 고유한 숫자들의 개수};
end