알고리즘 문제풀이/프로그래머스
[프로그래머스] 쇠막대기
홍시홍
2020. 4. 3. 01:16
분류 : stack
요구사항
레이저로 쇠막대기를 절단할 경우, 절단된 쇠막대기 갯수 구하기
풀이
앞에서 부터 차곡차곡 스택에 넣어준다
쇠막대기인 경우 제외해준다
팝되는 경우 처리해준다
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(string arrangement) {
int answer = 0;
string str = arrangement;
vector<char> v;
for (int i = 0; i < str.size(); i++) {
char now = str[i];
// cout << i << endl;
if(str[i] == '(') {
if(str[i + 1] == ')') {
answer += v.size();
i = i + 1;
}
else {
v.push_back(now);
}
}
else if(now==')'){
answer += 1;
v.pop_back();
}
//cout << now << " " << answer << endl;
}
return answer;
}