본문 바로가기
Algorithm/Programmers

프로그래머스 12906번 같은 숫자는 싫어

by eurowondollaryen 2022. 8. 22.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12906

풀이

시간복잡도 O(n)의 문제로, 현재 값을 따로 저장하여 비교하거나, stack을 이용하면 간단히 해결 가능한 문제입니다.

import java.util.*;

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

        return answer;
    }
}