Algorithm/문제
36. 올바른 괄호 (Stack)
챛채
2023. 9. 11. 13:17
( 이 나오면 스택에 push()
) 이 나오면 스택에서 pop()
스택이 비어있는 경우에는 isEmpty()사용해서 비어있으면 true 차있으면 false 반환
import java.util.*;
public class Main {
public String solution(String str) {
String answer = "YES";
Stack<Character> stack = new Stack<>();
for (char x : str.toCharArray()) {
if (x == '(') { //여는 괄호
stack.push(x);
} else { //닫는 괄호가 더 많은 경우
if(stack.isEmpty()) return "NO";
stack.pop();
}
}
//스택에 여는 괄호가 더 많은 경우
if(!stack.isEmpty()) return "NO"; //스택에 자료가 남아있으면 true
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}