https://www.acmicpc.net/problem/4949
이거 예제 넣어보는데 마지막에 그냥 점 말고 공백 + .은 입력을 못 받는데 뭐가 문제인건가요? 공백 2개 + .은 입력 받아서 잘 처리하던데 유독 공백 + .만 입력을 못받아요 무슨문제인가요?
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(int argc, const char * argv[])
{
string arr;
while (true)
{
cin.ignore();
getline(cin ,arr);
if(arr == ".")
break;
stack<int> st;
for(int i =0;i<arr.size();i++)
{
if(arr[i] == '(')
st.push(1);
else if(arr[i] == '[')
st.push(2);
else if(arr[i] == ')'&&st.empty() == 0&&st.top() == 1)
st.pop();
else if(arr[i] == ']'&&st.empty() == 0&&st.top() == 2)
st.pop();
}
if(st.empty() == 0)
cout << "no" << '\n';
else
cout << "yes" << '\n';
}
return 0;
}
공백을 ignore로 버리면 . 만 남으니까 바로 break 되는 건가?
ignore가 루프(while문) 밖에 있어야함 루프 안에 있어서 계속 버퍼에서 문자 지우는 걸꺼임