https://www.acmicpc.net/problem/9012
/**
* 1. 올바른 괄호열 찾기
*
* 2. stack을 통한 구현
*
* 3. t개의 테스트 데이터를 올바른 괄호열인지 "YES", "NO" 반환
*
*/
import java.io.*;
import java.util.Stack;
import java.util.StringTokenizer;
public class Test {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(br.readLine());
for(int tc = 0; tc < t; tc ++){
String str = br.readLine();
if(check(str)){
bw.write("YES\n");
}else{
bw.write("NO\n");
}
}
bw.flush();
bw.close();
}
// 괄호열이 올바른지 체크하는 함수
public static boolean check(String str){
Stack<Character> stack = new Stack<>();
for(int i = 0; i < str.length(); i++){
char c = str.charAt(i);
if(c == '('){
stack.push(c);
}else{
if(stack.isEmpty() || stack.peek() != '('){
return false;
}
stack.pop();
}
}
return stack.size() > 0 ? false : true;
}
}
스택 공부하기 좋은 문제들
https://programmers.co.kr/learn/courses/30/lessons/12973
https://programmers.co.kr/learn/courses/30/lessons/76502
https://www.acmicpc.net/problem/1874
'Algorithm > 백준풀이' 카테고리의 다른 글
[알고리즘 문제풀이] 백준 2613 숫자구슬 (JAVA코드) (0) | 2022.03.16 |
---|---|
[알고리즘 문제풀이] 백준 10845 큐 (JAVA코드) (0) | 2022.02.27 |
[알고리즘 문제풀이] 백준 10828 스택 (JAVA코드) (0) | 2022.02.27 |
[알고리즘 문제풀이] 백준 - N과M(2) / JAVA(자바) (0) | 2022.02.06 |
[알고리즘 문제풀이] 백준 1065 한수 / JAVA (0) | 2022.01.30 |
댓글