본문 바로가기
메모장/코딩테스트 준비

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

by code2772 2023. 3. 28.

[ 목차 ]

    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에 넣어주어 문제를 풀었다.

    반응형