GitHubSeob
C++ / 프로그래머스 / 짝지어 제거하기 본문
문제 |
https://programmers.co.kr/learn/courses/30/lessons/12973
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
문제풀이 |
스택을 이용하면 간단하게 풀 수 있다.
스택이 비어있지 않을 때, top부분과 s[idx]이 같다면 pop을 한다.
그 외의 경우는 s[idx]를 스택에 push 한다.
반복문이 종료되었을 때 비어있으면 1, 비어있지 않으면 0을 return 한다.
코드 |
#include <string>
#include <stack>
using namespace std;
int solution(string s) {
int idx(0);
stack<char>alp;
for (idx = 0; idx < s.size(); ++idx) {
if (!alp.empty() && alp.top() == s[idx]) {
alp.pop();
}
else {
alp.push(s[idx]);
}
}
return alp.empty();
}
'Programmers > Level 2' 카테고리의 다른 글
C++ / 프로그래머스 / 메뉴 리뉴얼 (0) | 2022.04.17 |
---|---|
C++ / 프로그래머스 / 행렬 테두리 회전하기 (0) | 2022.04.17 |
C++ / 프로그래머스 / 더 맵게 (0) | 2022.04.14 |
C++ / 프로그래머스 / 기능개발 (0) | 2022.04.14 |
C++ / 프로그래머스 / 124 나라의 숫자 (0) | 2022.04.14 |