Codeing Test Study -1 Remove Duplicates from Sorted Array

김민진·2021년 12월 14일
0

알고리즘

목록 보기
2/4

코딩테스트 준비를위한 과정을 기록해보겠다.

첫 문제는 배열에서 중복된 값 제거였다.

하지만 난 문제를 도저히 이해를 못했다..

라는데

사실 한국어여도 어려운 마당에 영어이니 더 그런거같다...

처음에는 이 문제를 중복된 값이 몇개나 있는지 숫자를 세는 문제로 이해를 했다.

그런데 예시 1번을 보면
넣어준것과 나오는값이 내가 이해한거랑은 달랐다..
처음에는 값이 많은 예시 2번만 보고 그렇게 생각했다가 예시1번을 자세히 보고나서야 그게 아닌것을 확인했다..

여튼 나는 for를 두번 돌려서 하나씩 체크한뒤 같은숫자가 있으면 결과값을 ++ 해주면 된다고 생각했다.

   // int[] results=new int[nums.length];
        int result=1;

        for(int i=0;i<nums.length;i++){
            for(int j=0;j<nums.length;j++){
                if(i==0){
                    break;
                }
                if(i==j)continue;
                if(nums[i]==nums[j]){
                    result++;
                }

            }
        }
        return result;

요런식으로 했으나 내가 생각한 결과값이 나오지 않았다 ㅜㅜ

그래서 구글링을 참고한 결과...

for문 한번으로도 체크가 가능하더라..

현재 인덱스와 이전의 인덱스 값이 같은지 틀린지 체크한뒤

값이 같으면 현재의 값을 다음 값으로 변경해주는 로직을 구현하였다.

int result=1;
        for(int index=1 ; index<nums.length ; index++){
            if(nums[index]!=nums[index-1]){
                nums[result]=nums[index];
                result++;
            }
        }
        return result;

이번 문제는 이렇게 클리어.

문제를 푸는것도 어렵지만 개인적으로 문제를 파악하는게 제일 어렵다 ㅜㅜ

profile
dart,c#,java 개발자! 잡다하게 해서 문제될게 없다!

0개의 댓글