프론트엔드 개발자의 기록 공간

[프로그래머스 JavaScript] 짝지어 제거하기 본문

알고리즘_JS/프로그래머스_Level2

[프로그래머스 JavaScript] 짝지어 제거하기

[리우] 2021. 7. 21. 21:11

🚩 프로그래머스 Level2 짝지어 제거하기

 

 

📖 문제 설명

연속된 문자를 제거해서 모두 제거가 가능하면 1, 아니면 0을 리턴해주면 되는 문제입니다.

제거후 앞뒤 문자열을 이어붙였을때도 연속된 문자이면 지워줍니다.

 

👉 소스 코드  ⏰시간복잡도 O(n)

function solution(s)
{
    var answer = -1;
    let stack = [];
    
    //문자열이 홀수면 불가능
    if(s.length%2 !== 0) return 0
        
    for(let x of s){
        //현재값과 스택에있는 값이 일치하면
        if(x === stack[stack.length-1]){
            stack.pop();
            continue;
        }
        //모든 문자열 스택에 넣어줌
        stack.push(x);
    }
    
    //스택 길이에 따라
    answer = stack.length === 0 ? 1 : 0
    return answer;
}

📖 코드 설명

문자열의 길이 만큼 반복을 수행합니다.

수행하면서 모든 문자열을 stack에 넣어줍니다.

넣기전에 stack의 마지막 값과 비교해서 일치하면 pop으로 값을 제거한 뒤

다음 반복문을 수행하면 됩니다.

728x90
Comments