반응형
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12973
문제 풀이
문자열의 각 문자를 순회하며 스택에 넣는다.
만약 스택이 비어있다면 그냥 넣으면 되고
스택이 비어있지 않다면 top과 비교하여 같은 문자인지 확인한다.
같은 문자라면 상쇄되기 때문에 push해줄 필요없이 pop하면 상쇄된다.
다르다면 그냥 push해주면 된다.
스택이 비어있다면 모든 문자가 짝지어져 상쇄되는 경우이므로 1을, 아닐 경우 0을 리턴하면 된다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
int solution(string s)
{
int answer = 0;
stack<char> st;
for(int i=0; i<s.size(); i++){
if(st.empty()){
st.push(s[i]);
}
else {
if(st.top() == s[i]){
st.pop();
}
else {
st.push(s[i]);
}
}
}
if(st.empty()) answer = 1;
return answer;
}
반응형
'Programming Solve > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 프린터 / C++ (0) | 2022.03.09 |
---|---|
프로그래머스 - 등굣길 / C++ (0) | 2022.03.08 |
프로그래머스 - 정수 삼각형 / C++ (0) | 2022.03.06 |
프로그래머스 - N으로 표현 / C++ (0) | 2022.03.02 |
프로그래머스 - 여행경로 / C++ (0) | 2022.02.19 |