*문제 출처는 프로그래머스에 있습니다.
문제 제목: 괄호 회전하기 (2단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/76502
문제 설명
나의 풀이
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(string s) {
int answer = 0;
for (int i = 0; i < s.length(); i++) {
stack<char> str;
for (int j = 0; j < s.length(); j++) {
if (s[j] == '[' || s[j] == '{' || s[j] == '(') {
str.push(s[j]);
}
else {
if (str.empty())
str.push(s[j]);
else if (s[j] == ']' && str.top() == '[')
str.pop();
else if (s[j] == '}' && str.top() == '{')
str.pop();
else if (s[j] == ')' && str.top() == '(')
str.pop();
}
}
if (str.empty()) answer++;
char ch = s.front();
s.erase(s.begin());
s.push_back(ch);
}
return answer;
}
※ 알아야 할 것
프로그래머스에서 괄호 문제들은 다 스택에 관련된 문제인 것 같다.
스택에 대해서 알고 있다면 쉽게 풀 수 있다.
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-C++' 카테고리의 다른 글
Programmers / 체육복 / C++ (0) | 2024.02.22 |
---|---|
Programmers / 할인 행사 / C++ (0) | 2024.02.21 |
Programmers / 연속 부분 수열 합의 개수 / C++ (0) | 2024.02.19 |
Programmers / 귤 고르기 / C++ (0) | 2024.02.16 |
Programmers / N개의 최소공배수 / C++ (0) | 2024.02.15 |