Remove Duplicates from Sorted Array - 리트코드

김태훈·2023년 8월 22일
0
post-thumbnail

https://leetcode.com/problems/remove-duplicates-from-sorted-array

평가

결과 : 성공
소요시간 : 4분

해설

문제는 다음과 같습니다.
입력

  • 오름차순(중복숫자 있음)으로 정렬된 배열
    출력
  • 입력된 배열에서 중복을 제거하기
  • 새롭게 정렬된 배열의 크기를 반환하기

아이디어

다음과 같은 방식을 사용했습니다.

  • 입력된 배열 nums 순회
  • 이전에 나온 숫자를 기록해두기 - 변수 prev
  • 현재 확인중인 숫자가 이전 숫자와 동일한지 확인
    - 동일하다는 건 중복된 숫자 -> 무시
    - 동일하지 않다는 건 새롭게 나온 숫자 -> answers에 기록
  • answers를 순회하며 nums 갱신
  • answers의 크기 return하기

수도 코드

간단한 문제라 수도코드는 없습니다.

정답 코드

class Solution {
    public int removeDuplicates(int[] nums) {
        List<Integer> answers = new ArrayList<>();
        int prev = -101; // 숫자 범위는 -100<=x<=100 이라 -101은 나올 수 없는 숫자입니다.
        for(int num: nums) {
            if (prev == num) {
                continue;
            }
            answers.add(num);
            prev = num;
        }
        int i = 0;
        for(Integer answer: answers) {
            nums[i++] = answer;
        }

        return answers.size();
    }
}
profile
작은 지식 모아모아

0개의 댓글