Programmers Review

[Lv 2] 짝지어 제거하기

hanseongbugi 2024. 7. 3. 17:48

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

스택을 통해 쉽게 구현이 가능한 문제

스택의 top과 현재 문자가 같으면 제거하고 아니면 스택에 삽입한다.

문자열 순회가 끝난 후 스택이 비어있으면 1 차있으면 0으로 반환한다.

 

#include <iostream>
#include<string>
#include <vector>
using namespace std;

int solution(string s)
{
    int answer = 0;
    vector<char> v;
    v.push_back(s[0]);
    for(int i = 1;i<s.length();i++){
        char c = s[i];
        if(v.back() == c){
            v.pop_back();
        }
        else{
            v.push_back(c);
        }
    }
    if(v.empty()) 
        answer = 1;
    

    return answer;
}