백준 9012번 괄호
생각 과정
해당 문제를 풀기 위해 나는 처음에 너무 어렵게 접근을 하게 되었다. (머릿속에서 정리가 잘 안되서 그런것 같다.)
그래도 차근차근 노트에 적어가며 패턴을 풀었다.
‘(‘ 문자는 count+=1;
‘)’ 문자는 count-=1;
그리고 조건이 더 있었다.
첫 시작은 ‘(‘로 시작해야 한다는 점. 그리고 전체 길이는 짝수여야 한다는 점.
그리고 count가 -1이 되면 )(( 이런식으로 모양이 안맞으니 관련 내용도 조건문으로 추가해주었다.
오늘의 회고(24.05.26)
하나씩 천천히 적어가며 풀어보자.
구현 내용
#include <iostream>
using namespace std;
bool Correct(string str){
char A = '(', B = ')';
int open_count = 1;
if(str[0] == A && (str.length() % 2) == 0){
for(int i = 1; i < str.length(); i++){
if(str[i] == A){
open_count++;
}else if(str[i] == B){
if(open_count == 0) return false;
open_count--;
}
}
if(open_count == 0){
return true;
}else{
return false;
}
}else{
return false;
}
}
int main(){
bool is_true = false;
int N = 0;
string s;
cin >> N;
for(int i = 0; i < N; i++){
cin >> s;
is_true = Correct(s);
if(is_true == true){
cout << "YES" << "\n";
}else{
cout << "NO" << "\n";
}
}
}
댓글남기기