조건이 () 밖에 없기 때문에 편한 문제임.
bool answer = true;
int opened = 0;
int i = 0;
while(s[i] != 0) {
if(s[i] == '(') {
opened++;
} else {
if (opened == 0) {
answer = false;
break;
} else {
opened--;
}
}
i++;
}
if (opened != 0)
answer = false;
return answer;
}
profile
//다른 사람 풀이
#include<string>
#include <iostream>
using namespace std;
bool solution(string s)
{
int n = 0;
for (int i = 0; i < s.length(); i++) {
if (n < 0)
return false;
if (s[i] == '(')
n++;
else if (s[i] == ')')
n--;
}
return n == 0;
}
문제 추천
leetcode: https://leetcode.com/explore/learn/card/queue-stack/230/usage-stack/1361/
풀이:
https://leetcode.com/explore/learn/card/queue-stack/230/usage-stack/1361/discuss