- 스택을 사용해서 (이면 넣고, )이면 빼 주며 처리하는 문제.
- 해당 문제풀이 방식을 지속적으로 활용해야 함.
- 메소드를 분리시켜서 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());
}
}
}
반응형
'(문제풀이)' 카테고리의 다른 글
프로그래머스 - 크기가 작은 부분 문자열(java) (0) | 2023.08.13 |
---|---|
백준 2164_카드2 (0) | 2023.06.06 |
백준 11728_배열 합치기 (0) | 2023.06.05 |
프로그래머스(java) : 음양 더하기 (0) | 2022.11.15 |
프로그래머스 (Oracle) LV.1 문제풀이 (0) | 2022.10.20 |