*문제 출처는 프로그래머스에 있습니다.
문제 제목: 짝지어 제거하기 (2단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/12973
문제 설명
나의 풀이
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int solution(string s) {
string stack_1 = "";
int idx = -2;
for (char c : s) {
stack_1.push_back(c);
idx += 1;
if (stack_1[idx] == stack_1[idx + 1]) {
stack_1.erase(idx, 2);
idx -= 2;
}
}
if (stack_1.empty()) return 1;
else return 0;
}
올바른 괄호 문제처럼 배열에 동일한 문제가 두 개 들어오면 삭제하는 방식을 취하고 모든 문자를 넣고 만약에 문자열에 아직 문자가 남아있다면 0을 반환하고 아니면 1을 반환하는 방법을 가져왔다.
※ 알아야 할 것
스택의 알고리즘을 알고 있다면 쉽게 풀 수 있는 문제다.
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-C++' 카테고리의 다른 글
Programmers / N개의 최소공배수 / C++ (0) | 2024.02.15 |
---|---|
Programmers / 구명보트 / C++ (0) | 2024.02.15 |
Programmers / 피보나치 수 / C++ (0) | 2024.02.14 |
Programmers / 다음 큰 숫자 / C++ (0) | 2024.02.14 |
Programmers / 특이한 정렬 / C++ (0) | 2024.02.08 |