취업 및 이직 준비/코딩테스트 준비

프로그래머스 - 같은 숫자는 싫어 - 자바 - 코딩테스트 준비

code2772 2023. 3. 28. 14:11
728x90
반응형
import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        int[] answer = {};
        // 크기가 얼마나 있는지 모르니 가변인 어레이리스트를 사용
        ArrayList<Integer> arrl = new ArrayList<Integer>();
        
//      배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수
        int num = -1; // 영햐을 끼치지 않는 숫자
        
        for(int i=0; i< arr.length ; i++){
            if(arr[i] != num){ // 처음은 무조건 삽입 왜냐면 관련없는 -1
                arrl.add(arr[i]);
         num = arr[i]; // 배열의 변수를 비교하기 위해 num에 arr을 넣는다.
            }
        }
        
         // answer를 리스트로 넣어야한다.
        answer = new int[arrl.size()];
        for (int i=0; i < answer.length; i++){
            answer[i] = arrl.get(i);
        }
        
  

        return answer;
    }
}

1. 크기가 얼마나 있는지 모르기 때문에 먼저 ArrayList를 만들었다.
2. 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수이기 때문에 먼저선언
   처음 비교하는 것이 들어가야 하기 때문에 범위에 관계없는 -1을 선언 
3. if문을 사용하여 중복값이 아닌 것을 num에 넣는다.
4. num과 배열을 비교반복한다.
5. 어레이리스트를 다시 리스트 answer에 넣어주어 문제를 풀었다.

반응형