문제 :
분석:
유제를 본 적이 있어 어떻게 접근하면 효율적일까 고민하던 중 stack으로 푼 방식이 획기적이었다!!
c++ 코드 :
//
// bracket.cpp
// SOMA👩🏻💻
//
// Created by JoSoJeong on 2021/04/21.
//
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int N;
bool isBracket(string s){
int len = (int)s.length();
stack <char> ss;
for(int i = 0; i < len; i++){
char c = s[i];
if(c == '('){
ss.push(c);
}else{
if(!ss.empty()){
ss.pop();
}else{
return false;
}
}
}
return ss.empty();
}
int main(){
cin >> N;
for(int i =0; i < N; i++){
string s;
cin >> s;
if(isBracket(s)){
cout << "YES" << '\n';
}else {
cout << "NO" << '\n';
}
}
return 0;
}
'Algorithm🐰 > 백준' 카테고리의 다른 글
[백준] 2583 영역 구하기 DFS (0) | 2021.04.22 |
---|---|
[백준] 1697 숨바꼭질 BFS (0) | 2021.04.21 |
[백준] 1110 더하기 사이클 string (0) | 2021.04.21 |
[백준] 2309 일곱 난쟁이 backtracking (0) | 2021.04.06 |
[백준] 1477 휴게소 세우기 (0) | 2021.04.05 |
댓글