작성
·
295
0
답변 3
0
코드랑 답변이랑 같이 안올라가서 딸로 올립니다!! main 문 바깥에 stack을 선언했을 때랑 main 내부에 선언했을 때랑 결과 같이 다릅니다. c++에서도 변수 선언 위치에 따라 결과가 달라지나요?
0
#include<bits/stdc++.h>
using namespace std;
int n,cnt = 0;
string a;
stack<char> b;// 제가 선언한 위치
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
for ( int i = 0 ; i < n; i++) {
cin >> a;
// stack<char> b; 제가 선언한 위치
for (char x : a) {
if(b.size() != 0 && b.top() == x) b.pop();
else b.push(x);
}
if(b.size() == 0)cnt++;
}
cout << cnt;
return 0;
}
0
아니요. 저건 테스트케이스마다 "스택"을 초기화 해주어야 하기 떄문입니다. 예를 들어 A테스트가 끝나고 스택에 어떤 값이 남아있으면 다음 테스트케이스에 영향을 미치겠죠? 그렇기 때문에 이런 테스트케이스 문제는 초기화를 해주는 것이 중요합니다.
선언위치에 따라 스택에 갑자기 무슨 값이 들어가지는 않습니다. ㅎㅎ
감사합니다.