본문 바로가기

알고리즘구현능력/문제해결능력

[javascript] 쇠막대기 | 프로그래머스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function solution(arrangement) {
    var answer = 0;
    let length = arrangement.length;
    let stick = 0;
    for(let i=0;i<length;i++){
        if(i!=(length-1)&&arrangement[i]==="("&&arrangement[i+1]===")"){
            answer += stick;
            i++;
        }
        else if(arrangement[i]==='('){
            stick++;
        }
        else if(arrangement[i]===")"){
            answer++;
            stick--;
        }
    }
    return answer;
}
cs

쇠막대기가 시작되는부분은 (  끝나는부분은 )

레이저가 쏘아지면 기존에 있던 막대기가 1개에서 두개로 나눠어진다.

그리고 막대기가 끝나는 부분은 +1을 하면된다.

직접 그림을 그려보면서 어떤 경우의 수가 있는지 직접 생각해보고 분석해보는 것이 좋다.