-
[프로그래머스/Level 2] 짝지어 제거하기 (C++)알고리즘 문제풀이/프로그래머스 2020. 11. 10. 16:21
programmers.co.kr/learn/courses/30/lessons/12973
짝을 지어서 제거하거나, 옳고 그름을 판단할 때 스택을 이용하는 경우가 많은 것 같다.
1. 스택을 선언
2. 스택이 비어있지 않으면서 스택의 top과 현재 인덱스의 문자가 같으면 pop
3. 위를 만족하지 않으면 현재 인덱스의 문자를 스택에 push
4. 2번과 3번을 반복한 후, 스택이 비어있다면 1을 리턴, 비어있지 않다면 0을 리턴
#include <stack> #include <string> using namespace std; int solution(string s) { stack<char> st; for(int i = 0; i < s.size(); i++) { if(!st.empty() && st.top() == s[i]) st.pop(); else st.push(s[i]); } if(st.empty()) return 1; else return 0; }
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level 3] 단어 변환 (C++) (0) 2020.11.24 [프로그래머스/Level 2] 조이스틱 (C++) (0) 2020.11.17 [프로그래머스/Level 2] JadenCase 문자열 만들기 (C++) (0) 2020.11.10 [프로그래머스/Level 2] 행렬의 곱셈 (C++) (0) 2020.11.09 [프로그래머스/Level 2] 최솟값 만들기 (C++) (0) 2020.11.09