( 이 나오면 스택에 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));
}
}
'Algorithm > 문제' 카테고리의 다른 글
38. 크레인 인형뽑기 (카카오) (0) | 2023.09.25 |
---|---|
37. 괄호 문자 제거 (0) | 2023.09.20 |
35. K번째 큰 수 (TreeSet) (0) | 2023.09.06 |
34. 모든 아나그램 찾기 (0) | 2023.09.05 |
33. 매출액의 종류 (0) | 2023.09.04 |