-
[C++] 백준 4949번 - 균형잡힌 세상 (스택 응용)CS/백준 BOJ 2020. 6. 28. 22:07
https://www.acmicpc.net/problem/4949
#include <iostream> #include <string> #include <stack> #include <istream> using namespace std; stack<char> stck; void print_result(int is_balanced) { if (is_balanced) cout << "yes\n"; else cout << "no\n"; } int find_match(char c) { if (stck.empty()) return (0); if ((c == ')' && stck.top() == '(') || (c == ']' && stck.top() == '[')) { stck.pop(); return (1); } return (0); } int main(void) { ios::sync_with_stdio(0); cin.tie(0); int flag; while (1) { string s; flag = 1; while (!stck.empty()) stck.pop(); getline(cin, s); if (s == ".") break ; for (auto c : s) { if (c == '(' || c == '[') stck.push(c); else if (c == ')' || c == ']') { if (!find_match(c)) { flag = 0; break ; } } } if (stck.empty() && flag) print_result(1); else print_result(0); } }
문제 풀 때 참고한 글
https://twpower.github.io/75-how-to-use-stack-in-cpp
'CS > 백준 BOJ' 카테고리의 다른 글
[프로그래머스] 소수 만들기 JavaScript (0) 2022.04.25 [C++] 백준 10808번 - 알파벳 개수 (0) 2020.07.02 [C++] 백준 10828번 - 스택 (스택 구현하기) (0) 2020.06.28 [C언어] 백준 2577번 - 숫자의 개수 (1) 2020.03.21 [C언어] 백준 1110번 - 더하기 사이클 (0) 2020.03.20