https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14eWb6AAkCFAYD
#문제 간단 정리
스택을 활용한 괄호 문제
#문제 해결 방법
map으로 좀 더 깔끔하게 짜고자 했다.
기존유형문제와 풀이 방법은 같다
#전체 코드
#include <iostream>
#include <vector>
#include <algorithm>
#include <climits>
#include <map>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
map<char, char> cache;
cache[')'] = '(';
cache[']'] = '[';
cache['}'] = '{';
cache['>'] = '<';
for (int tc = 1; tc <= 10; tc++) {
int n;
cin >> n;
string s;
cin >> s;
bool flag = true;
vector<char> brackets;
for (int i = 0; i < s.size(); i++) {
if (s[i] == '(' || s[i] == '[' || s[i] == '{' || s[i] == '<') {
brackets.push_back(s[i]);
}
else {
if (brackets.empty()) {
flag = false;
break;
}
else if(cache[s[i]] == brackets.back()) {
brackets.pop_back();
}
else {
flag = false;
break;
}
}
}
if (!brackets.empty()) {
flag = false;
}
if (flag) {
cout << '#' << tc << ' ' << 1 << '\n';
}
else {
cout << '#' << tc << ' ' << 0 << '\n';
}
}
return 0;
}
'[SW Expert Academy]' 카테고리의 다른 글
SW Expert Academy 1267. [S/W 문제해결 응용] 10일차 - 작업순서[C++] (0) | 2024.05.15 |
---|---|
SW Expert Academy 1224. [S/W 문제해결 기본] 6일차 - 계산기3[C++] (0) | 2024.04.17 |
SW Expert Academy 1219. [S/W 문제해결 기본] 4일차 - 길찾기[C++] (0) | 2024.04.06 |
SW Expert Academy [S/W 문제해결 기본] 3일차 - 최적 경로 [C++] (0) | 2024.04.03 |
SW Expert Academy [S/W 문제해결 기본] 1일차 - View [C++] (0) | 2024.03.17 |