https://school.programmers.co.kr/learn/courses/30/lessons/12909
자.. 괄호가 열리가 닫히는데는 순서가 있습니다.
괄호는 무조건 열린 후에 닫혀야 하죠.
괄호가 열리지 않았는데 닫히는 경우가 생기면 안됩니다.
이를 판단하기 위해 openNum이라는 변수를 사용합니다.
판단하는 중에는 openNum이 음수가 되어서는 안되며,
판단이 끝난 후에 openNum이 0이 되어야 valid 하다고 판단할 수 있습니다.
#include<string>
#include <iostream>
using namespace std;
bool solution(string s)
{
bool answer = true;
int openNum = 0;
// openNum 변수는 음수가 되면... 열린 괄호 < 닫힌 괄호 라는 뜻
for(int i=0; i< s.size(); i++){
if(s[i] == '('){
openNum++;
}
else{
openNum--;
}
if(isValid < 0){
return false;
}
}
if(openNum == 0){
answer = true;
}
else{
answer = false;
}
return answer;
}
간단하죠?
[Level2.] 구명보트 C++ (0) | 2024.02.04 |
---|---|
[Level1.] 개인정보 수집 유효기간 C++ (0) | 2024.02.03 |
[Level2.] 주식가격 C++ (0) | 2023.07.12 |
[Level2.] 기능개발 C++ (0) | 2023.07.11 |
[Level1.] 같은 숫자는 싫어 C++ (0) | 2023.07.11 |
댓글 영역