문자열이 주어졌을 때 같은 문자가 붙어 있는 경우에는 제거한다. 예를 들어 baab인 경우는 aa가 짝지어지기 때문에 제거되어 bb가 된다. bb 또한 다시 짝지어지기 때문에 제거된다. 이렇게 모든 문자열이 짝지어져서 제거되면 1을 출력되고 아니면 0이 된다.
문자열의 앞 문자부터 차례대로 탐색하면서 Stack에 삽입된다. 만약 Stack의 top과 현재 문자가 같다면 stack을 pop한다. 만약 stack이 비어있거나 top과 다른 문자이면 push한다. 마지막에 stack의 크기를 통해 문자열을 모두 제거하였는지 확인한다.
public int solution(String s) {
return new Stack<Character>() {{
for (char ch : s.toCharArray())
if (isEmpty() || peek() != ch) push(ch);
else if (peek() == ch) pop();
}}.isEmpty() ? 1 : 0;
}
저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!