티스토리 뷰

백준

백준 소스코드 [C++] 4949 균형잡힌 세상

Hani_Levenshtein 2020. 8. 27. 19:27

https://www.acmicpc.net/problem/4949

 

4949번: 균형잡힌 세상

하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마��

www.acmicpc.net

백준 소스코드 [C++] 4949 균형잡힌 세상

#include <iostream>
#include <stack>
#include<string>
using namespace std;
int main() {
	string m;
	stack<char> st;
	while(true){
		getline(cin, m);
		if (m.compare(".") == 0)break;
		for (int j = 0;j < (int)m.length();j++) {
			if (m[j] == '(' || m[j] == '[' ) 
				st.push(m[j]);
			else if (m[j] == ')'|| m[j] == ']') {
				if (st.empty()) {
					st.push(m[j]);
					break;
				}
				else if (
					(st.top() == '(' && m[j] == ')') ||
					(st.top() == '[' && m[j] == ']')
					)
					st.pop();
				else  break;

			}
			
		}
		if (st.empty()) cout << "yes" << '\n';
		else {
			cout << "no" << '\n';
			while (!st.empty()) st.pop();

		}
		
	}
	return 0;
}
댓글