프로그래머스 | 연속하지 않는 문자열

chaen·2024년 2월 16일
post-thumbnail

📌 문제

문자열 s가 주어질 때 연속한 2개의 같은 문자가 주어질 경우 해당 문자열을 지우고 남은 문자열을 이어 붙입니다. 이 과정을 연속한 2개의 같은 문자가 없을 때까지 반복하여 목표한 문자열을 얻으려고 할 때, 프로그램을 구현하세요.

입출력 예

sreturn
"aacddefg""cefg"
"aabbaa""[]"

✨ 해결 방법

앞의 문제와 마찬가지로 stack 을 사용합니다. 문제 풀이도 거의 같습니다. 다만 다른 점은 이번엔 아예 해당 문자를 없애야 하기 때문에 중복되지 않을 경우에만 push() 해준 점입니다.

그리고 또한 문자열로 반환해야 하기 때문에 join()을 써줍니다. 만약 문자열의 중복이 없는지 알아보려면 주석 부분을 참고합니다.

💻 solution

function solution(s) {
    let stack = [];

    s.split('').forEach (e => {
        if (stack !== 0 && stack[stack.length - 1] === e ){
            stack.pop();
        } else {
            stack.push(e);
        }
    })
    return stack.join('');
    // return stack.length === 0 ? 1 : 0;
}

0개의 댓글