인프런 커뮤니티 질문&답변

박제영님의 프로필 이미지
박제영

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 쇠막대기(스택)

와 이게 1판왕이엿던듯 간신히 풀어서 걍 글냄겨요

작성

·

256

0

기본적인 아이디어는 걍 각 막대기마다
가지고 있는 레이저의 개수를 기록하자
이게 다임
 
function solution(s){

    let a = s.split('');
    let laser = sum = originPos = 0;
    let stack = [];
    for(let i=0; i<s.length; ++i) {
 
        if(a[i] === '(' && a[i+1] === '(') {
            originPos = i;
            do {
                if(a[i] === '(') sum++;
                else sum--;

                if(a[i] === '(' && a[i+1] === ')')
                    laser++;

                ++i;
            } while (sum !== 0);

            i = originPos;
            stack.push([i,laser+1]);
            sum = laser = 0;
        }
    }

    sum = stack.reduce((acc,v)=>{return acc + v[1];},0)
    return sum;
}

let b ='(((()())(())()))';
let a="()(((()())(())()))(())";
console.log(solution(a));

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네 잘 하셨습니다.

박제영님의 프로필 이미지
박제영

작성한 질문수

질문하기