import java.util.*;
public class Solution {
public int[] solution(int[] arr) {
ArrayList<Integer> list = new ArrayList<>();
list.add(arr[0]);
for (int i=1; i<arr.length; i++)
if (arr[i]!=arr[i-1]) list.add(arr[i]);
int[] answer = new int[list.size()];
for (int i=0; i < answer.length; i++)
answer[i] = list.get(i).intValue();
return answer;
}
}
add 메소드를 사용하기 위해 Integer형 ArrayList를 선언해 준다. arr의 첫번째 원소를 일단 add 한 후, arr[i]와 arr[i-1]이 다르면 (새로운 원소값이 등장하면) list에 add 한다. 리턴형인 int[]로 변환은 필수!
ArrayList
ArrayList는 List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트다. 일반적인 배열과 같은 순차리스트이며 인덱스로 내부의 객체를 관리한다는 점 등이 유사하지만 한 번 생성되면 크기가 변하지 않는 배열과는 달리 ArrayList는 객체들이 추가되어 capacity를 초과한다면 자동으로 부족한 크기만큼 capacity가 늘어난다는 특징을 가지고 있다.
List<Integer> list = new ArrayList<Integer>();
int[] arr = new int[list.size()];
for (int i=0; i<arr.length; i++)
arr[i] = list.get(i).intValue();
return ret;