728x90
쇠막대기
코딩테스트 연습 - 쇠막대기
여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레�
programmers.co.kr
문제 설명
(
는 스택에 쌓아주고 )
일때마다 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