https://programmers.co.kr/learn/courses/30/lessons/12973
이번 문제는 stack 문제였습니다.
📝 문제풀이
1. 스택이 비어있다면 문자 push
2. 스택이 비어 있지 않다면 (짝지어가 있는지 검사)
☻ 스택의 탑과 현재 문자가 같다면 pop
☻ 스택의 탑과 현재 문자가 같지 않다면 현재 문자 push
3. 스택이 비어 있다면 짝지어를 성공적으로 제거한 것이므로 answer = 1
👩🏻💻 C++ 코드
#include <iostream>
#include <string>
#include <stack>
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.push(s[i]);
else st.pop();
}
}
answer = st.empty() ? 1 : 0;
return answer;
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 괄호 변환 (0) | 2022.02.16 |
---|---|
[프로그래머스] 전화번호 목록 (0) | 2022.02.15 |
[프로그래머스] 문자열 압축 (0) | 2022.02.12 |
[프로그래머스] 기능개발 (0) | 2022.02.11 |
[프로그래머스] 가장 큰 수 (0) | 2022.02.10 |