문제
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;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
프로그래머스 42586번 기능 개발 (0) | 2022.08.08 |
---|---|
프로그래머스 42579번 베스트앨범 (0) | 2022.07.31 |
프로그래머스 42578번 위장 (0) | 2022.07.26 |
프로그래머스 42577번 전화번호 목록 (0) | 2022.07.18 |
프로그래머스 42576번 완주하지 못한 선수 (0) | 2022.07.16 |