문제 링크
https://leetcode.com/problems/remove-duplicates-from-sorted-array/?envType=study-plan-v2&envId=top-interview-150
문제 해석
- nums 는 오름차순 정렬 + 중복된 요소를 가지고 있다.
- 중복 요소는 in-place 알고리즘을 통해 제거
- 기존에 입력된 요소들의 순서는 유지 되어야 함
- unique 한 요소의 개수 return
문제 해결
처음에는 , in-place 를 원하는지 모르고 그냥 새로운 배열을 만들어서 return 했으나 , 에러가 떠서 지문을 다시 찾아보고 in-place 를 발견해서 코드를 수정했다.
- 기존 값이 아닌 숫자를 만났을 시 , count 를 증가시키며 순서를 바꾸자
- Judge Code 를 보면 k까지만 검증하기에 나머지 순서는 상관 없으니까 고려 안하고 바꿔도 괜찮다고 생각
슈도 코드
count = 1
for(1;<nums.length;i++)
if(nums[count-1]!=nums[i])
nums[count++]=nums[i]
- 숫자가 [0,1] 이렇게 두개인 경우에도 , nums[1]=nums[1] 수행 후 , count가 ++하여 2가 되므로 pass
결과
사담
Array / String 부문이라 그런지 매우 쉬운거 같다.
처음 leet code 를 푸는데 , 영어로 지문이 되어 있어서 지문 이해가 우선인 것 같았다.
외국인들도 욕하는 것 같다.
그리고 ,
이런 해괴망측한 코드가 더 시간이 빨리 나오는거 보면 파이선은 참 신기한거 같다.
메모본