[프로그래머스] 쇠막대기
[프로그래머스] 쇠막대기
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(string str) {
int answer = 0;
stack <char> st;
int flag = 0;
for(int i=0; i<str.length(); i++){
if(str[i] == '('){
st.push('(');
flag = 1;
}else{
st.pop();
if(flag){
//laser
answer += st.size();
}else{
answer += 1;
}
flag = 0;
}
}
return answer;
}
(
이면 stack에 넣어주고, 레이저 판별을 위해 flag를 1로 바꿔준다.)
이면 stack에서 pop을 해주고, 레이저라면 stack의 사이즈만큼 답을 더해준다.- 레이저가 아니라면 한 개의 쇠막대기가 끝났기 때문에 +1을 해 준다.
- flag를 초기화 시켜준다.