시간초과 발생하는데 왜그런걸까요..??
#include<iostream>#include<algorithm>#include<string.h>#include<stack>#include<vector>#include<queue>
using namespace std;
stack<char> s;
int main() { char ch; char prech; int cnt = 0;
while ((ch = getchar()) != '\n') { if (ch == '(') { s.push(ch); } else { if (prech == '(') { if (!s.empty()) { s.pop(); cnt += s.size(); } } else { if (!s.empty()) { s.pop(); cnt++; } } } prech = ch; }
cout << cnt;
return 0;}
댓글을 작성하려면 로그인해야 합니다.
fixi2 6년 전
시간초과 발생하는데 왜그런걸까요..??
#include<iostream>
#include<algorithm>
#include<string.h>
#include<stack>
#include<vector>
#include<queue>
using namespace std;
stack<char> s;
int main() {
char ch;
char prech;
int cnt = 0;
while ((ch = getchar()) != '\n') {
if (ch == '(') {
s.push(ch);
}
else {
if (prech == '(') {
if (!s.empty()) {
s.pop();
cnt += s.size();
}
}
else {
if (!s.empty()) {
s.pop();
cnt++;
}
}
}
prech = ch;
}
cout << cnt;
return 0;
}