본문 바로가기
알고리즘 부셔버렷/ProblemSolving

[프로그래머스] 짝지어 제거하기 (문제 설명, 해결 과정, 코드 전문, c++)

by Unagi_zoso 2022. 6. 3.

 

  문제 설명

 

 

본 문제는 프로그래머스의 짝지어 제거하기 문제입니다.

 

출 처 : https://programmers.co.kr/learn/courses/30/lessons/12973

 

 

 

 

 

 

  해결 과정

 

주어진 문자열의 문자를 하나 하나 스택에 담아 기존 스택의 최상위 값과 추가될 값이 동일하다면 최상위 값을 제거하고

동일하지 않다면 추가될 값을 그대로 저장합니다. 문자열의 모든 문자를 전부 담은 이후 스택에 남은 값이 존재하지 않는다면 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의 특성과 유사하여 어렵지 않게 풀 수 있었습니다.

 

 

 

 

 

긴 글 읽어주셔서 감사합니다. 

부족한 점이 있다면 부디 알려주시면 감사하겠습니다.

 

댓글