https://www.acmicpc.net/problem/4949
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Stack<Character> stack = new Stack<>();
while(true){
String str = sc.nextLine();
if(str.equals(".")) { // .이 입력되면 종료
return;
}
for(int i=0; i<str.length(); i++){
char a = str.charAt(i);
if(a=='(' || a=='[' || a==')' || a==']'){ // ( [ ) ] 일 때에만 실행
if (stack.isEmpty()) // 스택이 비어있다면 무조건 push
stack.push(a);
else if (a == ')' && stack.peek() == '(') // 닫힌 괄호 ')' 일 때 스택의 맨 위가 열린 괄호 '(' 라면
stack.pop(); // 맨 위 열린 괄호 '(' pop
else if (a == ']' && stack.peek() == '[') // 닫힌 괄호 ']' 일 때 스택의 맨 위가 열린 괄호 '[' 라면
stack.pop(); // 맨 위 열린 괄호 '[' pop
else // 위의 조건문에 해당하지 않으면 push
stack.push(a);
}
}
if(stack.isEmpty()) // 스택이 비어있다면 균형적인 문자열
System.out.println("yes");
else
System.out.println("no");
stack.clear(); // 다음을 위해 stack 비우기
}
}
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준-자바] 10870번 피보나치 수 5 / 2022.03.22 (0) | 2022.03.22 |
---|---|
[백준-자바] 10872번 팩토리얼 / 2022.03.22 (0) | 2022.03.22 |
[백준-자바] 10773번 제로 / 2022.03.15 (0) | 2022.03.15 |
[백준-자바] 4889번 안정적인 문자열 / 2022.03.10 (0) | 2022.03.10 |
[백준-자바] 9012번 괄호 / 2022.03.08 (0) | 2022.03.08 |