public static int[] solution(int []arr) throws Exception {
int[] answer = {};
Integer[] answer1 = {};
boolean con1 = arr.length<=1000000;
Integer arrI[] = Arrays.stream(arr).boxed().toArray(Integer[]::new);
if(con1){//제한사항 배열크기
ArrayList<Integer> arrayList = new ArrayList<Integer>(Arrays.asList(arrI));
ArrayList<Integer> resArr = new ArrayList<Integer>();
ArrayList<Integer> removeArr = new ArrayList<Integer>();
int nextNum;
for(int i=0;i<arrayList.size();i++){
Integer curNum = (Integer)arrayList.get(i);
if(i<(arrayList.size()-1)){
nextNum=(Integer)arrayList.get(i+1);
}else{
break;
}
if(curNum>0&&curNum<10){
if(curNum==nextNum){
removeArr.add(i);
}
}else{
throw new Exception("배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수:"+curNum+", i :"+i);
}
}
Integer[] rmvArr = removeArr.toArray(new Integer[removeArr.size()]);
Arrays.sort(rmvArr, Comparator.reverseOrder());
if(rmvArr!=null && rmvArr.length>0){
for(Integer idx:rmvArr){
arrayList.remove((int)idx);
}
}
if(!arrayList.isEmpty()){
answer1 = arrayList.toArray(new Integer[arrayList.size()]);
}
answer = Arrays.stream(answer1).mapToInt(Integer::intValue).toArray();
}else{
throw new Exception("배열 arr의 크기 : 1,000,000 이하의 자연수");
}
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println(Arrays.toString(answer));
return answer;
}
Comments