연쇄적으로 짝지어 지면 제거하는 logic의 경우 stack으로 구현하면 비교적 간단하게 풀린다고 생각한다. stack이 비어있다면 push 해주며, stack.peek()와 그 다음 단어가 같다면 맨꼭대기를 pop해주면 되고, 아니라면 push 해주면된다.
import java.util.*;
class Solution
{
public int solution(String s)
{
int answer = 0;
String [] arr = s.split("");
Stack<String> st = new Stack();
for(int i=0; i<arr.length; i++){
if(st.size()==0){
st.push(arr[i]);
continue;
}
if(arr[i].equals(st.peek())){
st.pop();
}else{
st.push(arr[i]);
}
}
if(st.size()==0){
answer=1;
}else{
answer=0;
}
return answer;
}
}