[프로그래머스 LV1] 같은 숫자는 싫어

popolarburr·2023년 2월 21일
0
post-thumbnail


  • 문제 : 배열 내 0 ~ 9 까지의 숫자들 중 인접하고, 연속된 숫자를 하나만 남기고 전부 제거!

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        
        ArrayList<Integer> list = new ArrayList<>();
        
        for(int i=0; i<arr.length-1;i++) {
            if(arr[i] != arr[i+1]) {
                list.add(arr[i]);
            }
        }
        
        list.add(arr[arr.length -1]);
        
        int[] answer = new int[list.size()];        
        
        int i=0;
        
        for(int x : list) {
            answer[i++] = x;
        }

        return answer;
    }
}

  • 풀이 : 우선 Integer로 된 List를 하나 만들고, for문을 돌린다. 0부터 시작하는 인덱스의 for문을 통해 다음 인덱스와의 비교를 하여 같다면 넘어가고, 같지 않다면 list에 저장. 중요한 건 마지막 length-1 인덱스에서 같지 않다고 할 땐 들어가지 않기 때문에
    list.add(arr[arr.length-1]); 을 진행.

  • 마지막으로 리스트에 있는 값들을 int[]로 옮겨 출력하면 끝!


출처 : 프로그래머스 LV1 같은 숫자는 싫어

profile
차곡차곡

0개의 댓글