*문제 출처는 프로그래머스에 있습니다.
문제 제목: 올바른 괄호 (2단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/120817
문제 설명
나의 풀이
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
bool solution(string s) {
string stack_1; // 문자열이지만 스택이라고 생각하면 된다.
int idx = -1; // 스택의 인덱스 위치를 나타내는 변수다.
for (char c : s) {
stack_1.push_back(c);
idx += 1;
if (stack_1[idx] == ')') { // ')' 만나고 뒤에가 '('이면 둘이 같이 삭제한다.
if (stack_1[idx - 1] == '(') {
stack_1.erase(idx - 1, 2); // idx - 1번째부터 문자 2개를 삭제한다.
idx -= 2; // idx 2번 당긴다.
}
else {
return false; // 아니면 올바른 괄호가 될 수 없다 false를 반환한다.
}
}
}
if (stack_1.empty()) return true; // 올바른 괄호였다면 stack_1에는 아무것도 없을 것이다.
else return false; // 만약에 뭐가 남아있다면 false를 반환한다.
}
※ 알아야 할 것
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-C++' 카테고리의 다른 글
Programmers / 다음 큰 숫자 / C++ (0) | 2024.02.14 |
---|---|
Programmers / 특이한 정렬 / C++ (0) | 2024.02.08 |
Programmers / 이진 변환 반복하기 / C++ (0) | 2024.02.07 |
Programmers / 숫자 짝꿍 / C++ (0) | 2024.02.02 |
Programmers / 달리기 경주 / C++ (0) | 2024.02.01 |