Little Jay

[C++] 백준 7875번 - Brackets 본문

알고리즘/BOJ

[C++] 백준 7875번 - Brackets

Jay, Lee 2021. 9. 26. 18:39

백준 풀다가 너무 현타와서 조금 쉬운 문제들을 풀어보는 중

stack을 활용한 괄호 확인 문제이다.

 

#include <iostream>
#include <string>
#include <stack>
using namespace std;

int main() {

	ios_base::sync_with_stdio(0);
	cin.tie(0);

	string s;
	while (getline(cin, s)) {
		stack<char> braces;
		bool flag = true;

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

		for (int i = 0; i < s.size(); i++) {
			if (s[i] == '(') {
				braces.push('(');
			}
			else if (s[i] == '[') {
				braces.push('[');
			}
			else if (s[i] == '{') {
				braces.push('{');
			}
			else if (s[i] == ')') {
				if (!braces.empty() && braces.top() == '(') {
					braces.pop();
				}
				else {
					flag = false;
					break;
				}
			}
			else if (s[i] == ']') {
				if (!braces.empty() && braces.top() == '[')
					braces.pop();
				else {
					flag = false;
					break;
				}
			}
			else if (s[i] == '}') {
				if (!braces.empty() && braces.top() == '{')
					braces.pop();
				else {
					flag = false;
					break;
				}
			}
		}

		if (flag && braces.empty())
			cout << "Legal" << "\n";
		else
			cout << "Illegal" << '\n';
	}

	return 0;
}

'알고리즘 > BOJ' 카테고리의 다른 글

[C++] 백준 15651번 - N과 M (3)  (0) 2021.11.06
[C++] 백준 15650번 - N과 M(2)  (0) 2021.11.06
[C++] 백준 1712번 - 손익분기점  (0) 2021.09.25
[C++] 백준 10808번 - 알파벳 개수  (0) 2021.09.25
[C++] 백준 1010 - 다리놓기  (0) 2021.09.20
Comments