-
728x90

* 접근한 방법
- getline으로 한 문장씩 받아와서 확인
- ( , [ 가 들어오는경우 => push
- ) , ] 가 들어오는 경우 => 앞에서 여는 기호가 나온 경우 pop, 아닌 경우 no출력#include <iostream>#include <string>#include <stack>using namespace std;int main() {while (1){string s;getline(cin, s);if (s.compare(".") == 0)break;stack<char> st;int flag = 0;for (int i = 0; i < s.size(); i++){if (s[i] == '(' || s[i] == '[')st.push(s[i]);else if(s[i] == ')'){if (!st.empty() && st.top() == '(')st.pop();else{cout << "no\n";flag = 1;break;}}else if (s[i] == ']'){if (!st.empty() && st.top() == '[')st.pop();else{cout << "no\n";flag = 1;break;}}}if(flag==0)if (st.empty())cout << "yes\n";elsecout << "no\n";}}* 생각하지 못한 점
- 문장이 끝날 때 까지 no가 나오지 않은 경우, 마지막에 yes를 출력하는데 이렇게하면 no는 yes를 또 출력할 수도 있음
=> flag를 이용(no가 나온 경우, flag=1로 바꿔주고 flag가 0일때만 출력!)
- [ab 와 같이 여는 기호만 나온 경우, 아무것도 출력하지 않았음
=> 마지막에 st이 비어있지 않으면 no를 한 번 더 출력!데롱디롱희희.. (๑′ᴗ‵๑)
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[2164] 백준 : 카드2(C++) (0) 2020.04.27 [18258] 백준 : 큐2(C++) (0) 2020.04.27 [10773] 백준 : 제로(C++) (0) 2020.04.27 [11729] 하노이 탑 이동 순서(C++) (0) 2020.04.27 [2447] 백준 : 별 찍기 - 10(C++) (0) 2020.04.26
