문제 설명

제한 사항

입출력 예

풀이
import java.util.Stack;
class Solution {
public int solution(String s) {
Stack<Character> st = new Stack<>();
for (int i = 0; i < s.length(); i++) {
if (!st.empty())
if(st.peek() == s.charAt(i)) {
st.pop();
continue;
}
st.push(s.charAt(i));
}
return (st.empty()) ? 1 : 0;
}
}
후기
while(s.matches(.*(\\w)\\1.*))
s.replaceAll("(\\w)\\1", "");
처음에는 위와 같은 정규 표현식으로 풀려고 했는데 코드 길이는 짧으나 시간이 초과되어 다른 방법으로 풀게 되었다.
스택으로 풀면 아주 쉽게 풀 수 있다. 스택은 한 번만 순회하면 답을 낼 수 있는데 정규 표현식 방법은 while문을 반복해서 스택보다 실행 시간이 오래 걸렸던 것 같다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 2] 올바른 괄호 (0) | 2023.08.03 |
|---|---|
| [프로그래머스][JAVA][Lv. 2] 문자열 압축 (0) | 2023.08.02 |
| [프로그래머스][JAVA][Lv. 1] 콜라츠 추측 (0) | 2023.08.01 |
| [프로그래머스][JAVA][Lv. 1] 평균 구하기 (0) | 2023.08.01 |
| [프로그래머스][JAVA][Lv. 2] 광물 캐기 (0) | 2023.07.31 |