[ 풀이 방법 ]
스택을 이용하면 풀기 쉽습니다.
1) 문자열을 char 배열로 만들어줌
2) '(' 를 만나면 푸쉬
3) ')' 를 만나면 pop
* return false 가 되는 두 가지 경우
1) pop 하는데 스택이 비어 있을 때
2) pop 을 다 했는데 스택에 요소가 남아 있는 경우
import java.util.Stack;
public class 괄호문제 {
static Stack<Character> stack = new Stack<>();
public static void main(String[] args) {
String s = ")()(";
System.out.println(solution(s));
}
static boolean solution(String s) {
boolean answer = true;
char[] ch = s.toCharArray();
for (int i = 0; i < ch.length; i++) {
if (ch[i] == '(') {
stack.push(ch[i]);
} else if (ch[i] == ')') {
if(stack.empty()){
return false;
}
Character pop = stack.pop();
}
}
if(!stack.isEmpty()){
return false;
}
return answer;
}
}