Information Security Study
[백준] 9012: 괄호 본문
위 예제처럼 괄호의 짝이 맞으면 YES, 아니면 NO를 출력한다.
package boj;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
/*
* 괄호 짝맞추기
*/
public class Main {
public static void main(String[] args) throws IOException{
// StringBuilder를 사용하여 결과를 한 번에 출력하기 위한 객체 생성
StringBuilder sb = new StringBuilder();
// BufferedReader를 사용하여 입력을 받기 위한 객체 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력 횟수
int T = Integer.parseInt(br.readLine());
for(int i = 0; i < T; i++) {
String s = br.readLine();
sb.append(solve(s)).append("\n");
}
System.out.println(sb);
}
public static String solve(String s) {
// 저장할 스택 생성
Stack<Character> stack = new Stack<>();
for(int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(c == '(') {
stack.push(c);
}
else if(c == ')') {
if(stack.isEmpty()) {
return "NO";
} else {
stack.pop();
}
}
}
if(stack.empty()) {
return "YES";
} else {
return "NO";
}
}
}
스택을 사용해서 풀면 된다.
'('가 들어오면 push
')'가 들어오면 pop을 하면 된다.
괄호의 짝이 맞는다면 스택이 비어있을 것이다.
'Programming > JAVA' 카테고리의 다른 글
[백준] 3986: 좋은 단어 (0) | 2024.01.19 |
---|---|
[백준] 10799: 쇠막대기 (0) | 2024.01.19 |
[백준] 4949: 균형잡힌 세상 (0) | 2024.01.18 |
[백준] 10828: 스택 (0) | 2024.01.18 |
중고거래 웹 서비스 팀 프로젝트 (0) | 2022.09.03 |