728x90
쇠막대기
문제 설명
(
는 스택에 쌓아주고 )
일때마다 top
에 있는 (
를 pop하고 스택의 사이즈를 answer에 더해준다.
문제 풀이
소스코드 : C++
#include <string>
#include <vector>
using namespace std;
int solution(string arrangement) {
int answer = 0;
vector<char> v; // stack
for(int i=0; i<arrangement.size(); i++){
char c = arrangement[i];
if(c == '(') v.push_back(c);
else {
v.pop_back();
if(arrangement[i-1]=='(')answer+=v.size();
else answer++;
}
}
return answer;
}
소스코드 : Python
def solution(arrangement):
answer = 0
cnt = 0
for i in range(len(arrangement)):
c = arrangement[i]
if c=='(': cnt+=1
else:
cnt-=1
if arrangement[i-1]=='(': answer +=cnt
else answer+=1
return answer
728x90
300x250