카테고리 없음

[js] 문자열에서 연속한 알파벳 소거하기_Repeat Alphabet

우금붕 2023. 1. 13. 10:31

[문제 설명]

S는 알파벳으로 이루어진 문자열 입니다.

해당 문자열에서 2회 이상 연속해서 나오는 알파벳을 소거 합니다.
소거한뒤에 나온 문자열에서 다시 연속해서 나오는 알파벳을 소거하는 작업을 더이상 작업할 것이 없을 때 까지 반복합니다.

이때 최종 문자열이 완전히 소거되어 빈 문자열이라면 1을 리턴하고 알파벳이 남아있으면 0을 리턴하는 함수를 작성하세요.

 

[입력]

문자열 S

 

[출력]

조건 수행후 문자열이 비어있다면 1, 남아있다면 0

 

 

[문제 풀이]

function solution(S) {
    let arr = [];
    let result = 0;
    for(let i=0;i<S.length;i++){
       arr.push(S[i]);
       if(arr[arr.length-1]===arr[arr.length-2]){
           arr.pop();
           arr.pop();
       }
    }
    if (arr == 0) {
        result = 1;
    }
    return result;
}

 

[해설]

arr에 S의 문자열을 하나씩 넣습니다.

만약 전에 들어온 문자열과 동일한 문자열이 있다면 arr에서 두 개 다 빼줍니다.

 

 

[느낀점]

stack 개념을 활용하여 코드를 작성했습니다. stack 개념을 활용하는 문제들 중 조금 더 난이도 있는 문제에도 도전해보려고 합니다. 그리고 stack 개념을 활용한 문제를 조금 더 clean하게 짜는 방법에 대해 생각해봐야 할 것 같습니다.

 

 

[github] - RepeatAlphabet.js

https://github.com/yh725k/javascript.git