문제
문제링크
접근
- 처음에는 간단한 이용하여 풀려고 하였지만, 시간 초과가 나서 복잡도 O(n)인 방법을 고민하였다.
- '제일 끝에 있는 것과 같은 것'이라는 개념을 생각하다가 스택이 떠올랐고, 스택을 떠올린 뒤에는 매우 간단하게 풀이하였다.
소스 코드
import java.util.Stack;
class Main {
public static void main(String[] args) throws Exception {
String s = "cdcd";
Solution sol = new Solution();
System.out.println("result : " + sol.solution(s));
}
}
class Solution {
public int solution(String s) {
Stack<Character> stack = new Stack<>();
for (Character c : s.toCharArray()) {
if (!stack.isEmpty() && stack.peek() == c) {
stack.pop();
} else {
stack.add(c);
}
}
return stack.isEmpty() ? 1 : 0;
}
}