https://school.programmers.co.kr/learn/courses/30/lessons/12973
전형적인 Queue/Stack 문제인데, 관건은 문자열 처리를 어떻게 하느냐인듯.
난이도에 비해 질문 글 갯수가 많아서 왜 그런가 했는데, 대부분 문자열 처리에서 문제를 겪은 듯 하다.
import java.util.*;
class Solution
{
public int solution(String s)
{
char[] arr = s.toCharArray();
Stack<Character> stack = new Stack();
for (char c : arr) {
if (stack.isEmpty()) {
stack.push(c);
} else {
char peek = stack.peek();
if (peek == c) {
stack.pop();
} else {
stack.push(c);
}
}
}
return stack.isEmpty() ? 1 : 0;
}
}
문제를 풀고 다른 분들의 정답을 보니 toCharArray() 대신 getBytes() 로 처리한 분이 계시더라.
확실히 메모리 사용량이나 처리시간이 줄어듦.
split("") 으로도 테스트 해봤는데 문자열 처리라 그런지 확실히 느리고 무겁더라..