View


😃 || 정리

   1. 처음에는 '중복되는' 숫자들을 제거한 배열을 리턴해주는 줄 알고 Set을 써서 구현했었다. 알고보니 '중복되는'이 아닌 ' 연속되는' 숫자임을 깨닫고 다시 풀이 시작 


  2. 그렇다면 연속되는 숫자는 어떻게 구분해줄까를 다시 고민했다.
일단 연속되는 숫자 중 가장 먼저 나타나는 숫자를 기준으로 배열에서 값을 가져온 후 기준값과 배열에서 가져온 값이 같지 않을 때, 배열에서 가져온 값을 return 배열에 넣어주기로 했다.
 그런데 return 배열의 크기가 정해지지 않았기 때문에 나는 ArrayList를 사용하기로 했다.
 그 후 다시 ArrayList를 int배열로 바꿔서 return 했다. 


😃 || 풀이 방법

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        int[] answer = {};

        ArrayList<Integer> arrList = new ArrayList<Integer>();
        int arrLen = arr.length;
        int identifier = arr[0];
        arrList.add(arr[0]);

        for(int i=1; i< arrLen; i++){
         if( identifier != arr[i]){
           identifier = arr[i];
           arrList.add(arr[i]);
         }
        }
        answer = new int[arrList.size()];

        for(int i=0; i< arrList.size(); i++){
            answer[i] = (int)arrList.get(i);
        }

        return answer;
    }
}

 

Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31