-
[프로그래머스/Level 2] 짝지어 제거하기 (C++)알고리즘 문제풀이/프로그래머스 2020. 11. 10. 16:21
programmers.co.kr/learn/courses/30/lessons/12973
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
짝을 지어서 제거하거나, 옳고 그름을 판단할 때 스택을 이용하는 경우가 많은 것 같다.
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