문제 설명 |
본 문제는 프로그래머스의 짝지어 제거하기 문제입니다.
해결 과정 |
주어진 문자열의 문자를 하나 하나 스택에 담아 기존 스택의 최상위 값과 추가될 값이 동일하다면 최상위 값을 제거하고
동일하지 않다면 추가될 값을 그대로 저장합니다. 문자열의 모든 문자를 전부 담은 이후 스택에 남은 값이 존재하지 않는다면 1을 반환 그렇지 않은 경우엔 0을 반환합니다.
코드 전문 |
#include <string>
#include <stack>
using namespace std;
int solution(string s)
{
int answer = -1;
stack<char> stk;
for (auto ch : s)
{
if (!stk.empty() && stk.top() == ch)
stk.pop();
else stk.push(ch);
}
if (stk.empty()) return 1;
return 0;
}
느낀 점 (잡설 99% , 배운점 1%(많은 편)) |
더보기
카카오 LV1 문제에 포함되어 있는 유형의 문제네요. stack의 특성과 유사하여 어렵지 않게 풀 수 있었습니다.
긴 글 읽어주셔서 감사합니다.
부족한 점이 있다면 부디 알려주시면 감사하겠습니다.
'알고리즘 부셔버렷 > ProblemSolving' 카테고리의 다른 글
[프로그래머스] [1차] 뉴스 클러스터링 (문제 설명, 해결 과정, 코드 전문, c++) (0) | 2022.06.06 |
---|---|
[프로그래머스] 메뉴 리뉴얼 (문제 설명, 해결 과정, 코드 전문, c++) (0) | 2022.06.05 |
[프로그래머스] 더 맵게 (문제 설명, 해결 과정, 코드 전문, c++) (0) | 2022.06.03 |
[프로그래머스] 기능개발 (문제 설명, 해결 과정, 코드 전문, c++) (0) | 2022.06.03 |
[프로그래머스] 124 나라의 숫자 (문제 설명, 해결 과정, 코드 전문, c++) (0) | 2022.06.02 |
댓글