스택을 활용하여 푼 문제!
import java.util.*;
class Solution {
boolean solution(String s) {
Stack<Character> stack = new Stack<>();
for (char ch : s.toCharArray()) {
if (ch == '(') {
stack.push(ch);
} else if (ch == ')') {
if (stack.isEmpty()) {
return false;
}
stack.pop();
}
}
return stack.isEmpty();
}
}
문제의 핵심은 ()
의 꼴을 어떻게 판단하냐는 것. 스택을 활용해서 (
만 저장시키고, 짝인 )
만 나왔을 때 해당 스택을 지워주었다. 로직이 어렵다기보단 스택을 어떻게 활용해야하는지 고민했던 문제...