괄호쌍이 올바른지 판별하는 문제
내 풀이
스택을 이용해서 '(' 괄호는 스택에 push, ')' 괄호는 pop 하고
비어있는데 pop을 하거나 <- ')' 괄호 갯수가 더 많음
스택에 괄호가 남아있거나 <- '(' 괄호가 더 많으면
NO, 아니면 YES를 리턴하게 풀었다
import java.util.*;
public class Main {
public String Solution(String s1){
String ans = "NO";
char[] arr1 = s1.toCharArray();
Stack<Character> st = new Stack<>();
for(char x : arr1){
if(x == '(') st.push('(');
if(x == ')'){
if (st.empty()) return ans;
else st.pop();
}
}
if (st.empty()) ans = "YES";
return ans;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String s1 = in.next();
System.out.print(T.Solution(s1));
}
}
강의 풀이도 동일