코딩테스트/프로그래머스
[프로그래머스] 쇠막대기
하이하이루루
2023. 7. 7. 12:24
프로그래머스 쇠막대기 C++ 풀이
https://programmers.co.kr/learn/courses/30/lessons/42585
// 눈이 존나 좋아야 된다. 그림보고 처음부터 하나하나 해보면 풀린다.
#include <vector>
#include <stack>
#include <string>
using namespace std;
int solution(string arrangement) {
int answer = 0;
stack<int> num;
//글자의 처음부터 마지막까지 순회
for (int i = 0; i < arrangement.length(); i++){
//여는 괄호라면 스택에 추가
if (arrangement[i] == '(')
num.push(1);
else{
//닫는 괄호라면 스택에서 하나제거
num.pop();
//전 기호가 여는 기호였다면 레이저이므로 열린괄호만큼 개수추가
if (arrangement[i - 1] == '(')
answer += num.size();
else//전 기호가 여는 기호가 아니었다면 쇠막대기의 마지막이므로 1개 추가
answer++;
}
}
return answer;
}