하루 1문제 챌린지/Silver4

백준 4949번 균형잡힌 세상(C++) 🚩

그린푸딩 2024. 2. 10. 23:49
728x90
반응형

반례 찾아서 예외처리하는거 어렵다..

stack이 비었는지도 확인해야한다.

#include<iostream>
#include<vector>
#include<string>
#include<stack>

using namespace std;

int main() {

	
	stack<char>t1;
	stack<char>t2;
	int cnt = 0;
	bool flag = false;

	string s;
	while (getline(cin,s)) {

		if (s == ".") {
			break;
	    }

		for (int i = 0; i < s.size(); i++) {

			if (s[i] == '(') {
				t1.push(s[i]);
			}
			if (s[i] == '[') {
				t1.push(s[i]);
			}
			if (s[i] == ')') {
				if (t1.empty() || t1.top() != '(')flag = true;
				else t1.pop();
			}
			if (s[i] == ']') {
				if (t1.empty() || t1.top() != '[')flag = true;
				else t1.pop();
			}


		}
		if (!t1.empty())flag = true;
		if (flag)cout << "no\n";
		else cout << "yes\n";

		t1 = t2;
		flag = false;
	}


}
728x90
반응형

'하루 1문제 챌린지 > Silver4' 카테고리의 다른 글

백준 1940번 주몽(C++)  (0) 2024.03.02