-
프로그래머스 Lv2 올바른 괄호Computer Science/프로그래머스 2023. 10. 6. 11:49더보기
올바른 문자열이 아닌 경우는
'(' 이 없는데 ')' 문자가 오는 경우
'(' 이 있는데 문자열이 끝난 경우
따라서 나는 코드를 아래와 같이 설계했다.
스택이 비었는데 ')' 문자가 오면 잘못된 문자열
스택이 비어있지 않을 때 스택의 top() == '(' 이고, 현재 문자가 ')'이면 스택에서 문자열을 제거한다.
모든 문자열을 탐색했는데 스택이 차있으면 ')' 문자가 부족하다는 것이므로 잘못된 문자열
코드는 아래와 같다.
#include <string> #include <iostream> #include <stack> using namespace std; bool solution(string s) { bool answer = true; stack<char> st; for(int i = 0; i < s.size(); ++i) { if(st.empty() && s[i] == ')') return false; if(!st.empty() && st.top() == '(' && s[i] == ')') { st.pop(); continue; } st.push(s[i]); } if(!st.empty()) return false; return answer; }
더보기continue 부분을 빼먹어서, '(' , ')' 문자쌍을 제거하지 못했다...꼼꼼해지자...
'Computer Science > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv2 브라이언의 고민 (1) 2023.10.08 프로그래머스 Lv2 가장 큰 정사각형 찾기 (0) 2023.10.06 프로그래머스 Lv2 다음 큰 숫 (0) 2023.10.06 프로그래머스 Lv2 땅따먹기 (0) 2023.10.06 프로그래머스 Lv2 멀리 뛰기 (0) 2023.10.06