(문제풀이)
백준 9012_괄호
cogito-new
2023. 6. 5. 21:54
- 스택을 사용해서 (이면 넣고, )이면 빼 주며 처리하는 문제.
- 해당 문제풀이 방식을 지속적으로 활용해야 함.
- 메소드를 분리시켜서 input, logic 부를 분리해서 예외처리 시 복잡하지 않게 처리해야 함.
package stack;
import java.util.Scanner;
import java.util.Stack;
public class bj9012 {
public static void foo(String s){
Stack<Character> stack = new Stack<>();
int i = 0 ;
while(i < s.length()){
char c = s.charAt(i);
if(c == '('){
stack.push(c);
} else { // ')'
if(stack.size()<1){
System.out.println("NO");
return;
}
stack.pop();
}
i++;
}
if(stack.size() > 0){
System.out.println("NO");
return;
} else { //stack.size() == 0
System.out.println("YES");
}
}
public static void main(String[] args) {
//Input
Scanner scanner = new Scanner(System.in);
int T = scanner.nextInt();
for(int i = 0; i < T; i++){
foo(scanner.next());
}
}
}
반응형