Coding - Algo/Java
[백준] 4949번:균형잡힌 세상 (Python 파이썬)
jainn
2021. 8. 4. 17:42
728x90
문제
https://www.acmicpc.net/problem/4949
4949번: 균형잡힌 세상
하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마
www.acmicpc.net
풀이 및 소스코드
import java.io.*;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while (true) {
char[] line = br.readLine().toCharArray();
int n = line.length;
if (n == 1 && line[0] == '.')
break;
Stack<Character> stack = new Stack<>();
int flg = 1;
for (int i = 0; i < n; i++) {
if (line[i] == '(' || line[i] == '[') {
stack.push(line[i]);
} else if (line[i] == ']' || line[i] == ')') {
if (stack.empty()) {
flg = 0;
break;
}
char pop_stack = stack.pop();
if (line[i] == ']' && pop_stack!='[') {
flg = 0;
break;
} else if (line[i] == ')' && pop_stack!='(') {
flg = 0;
break;
}
}
}
if (stack.empty() && flg == 1)
sb.append("yes\n");
else
sb.append("no\n");
}
System.out.println(sb);
}
}
반응형