코드
#include <string>
#include <stack> // 스택
using namespace std;
bool solution(string s)
{
bool answer = true;
stack<char> check;
check.push(s[0]);
if(check.top()=='('){ // 첫 문자는 반드시 '('
for(int i=1;i<s.size();i++){
if(s[i]=='('){
check.push(s[i]); // s[i] 가 '(' 일시 push
}else if(!check.empty() && check.top()=='('){ // 스택이 비어있지 않고 스택 맨 위 값이 '(' 일 때 pop 사용
check.pop();
}
}
}else{ // '(' 아닐 경우 false 반환
answer=false;
}
if(check.empty()){ // 스택이 비어있는 경우 true
answer=true;
}else{ // 비어있지 않은 경우 false
answer=false;
}
return answer;
}
'C++ > programmers 코딩테스트(level 2) C++' 카테고리의 다른 글
[C/C++] programmers Level 2 기능개발 (0) | 2023.09.29 |
---|---|
[C/C++] programmers Level 2 하노이의 탑 (0) | 2023.09.28 |
[C/C++] programmers Level 2 피보나치 수 (0) | 2023.09.27 |
[C/C++] programmers Level 2 숫자의 표현 (0) | 2023.09.25 |
[C/C++] programmers Level 2 전화번호 목록 (0) | 2023.09.14 |