풀이
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int[] answer = array(arr);
if(answer.length==0) {
return new int[]{-1};
}
return answer;
}
private static int[] array(int[] arr){
Stack<Integer> stk=new Stack<>();
for(int i=0; i<arr.length; i++){
if(stk.isEmpty() || stk.peek() != arr[i]) {
stk.push(arr[i]);
}else{
stk.pop();
}
}
int[] tmp=new int[stk.size()];
int idx=tmp.length-1;
while(!stk.isEmpty()){
tmp[idx]=stk.pop();
idx--;
}
return tmp;
}
}
풀이방법
1) stack사용으로 규칙에 맞게 값 누적하기
2) tmp배열에 임시저장
3) answer에 대입하여 반환