js/[문제풀이] programmers

[js] 문자열에서 연속되는 중복 제거_Remove Duplicated Word

우금붕 2023. 1. 4. 13:53

[문제 설명]

문자열에 연속한 2개의 같은 문자가 존재하지 않도록 만들고 싶습니다. 연속한 2개의 같은 문자가 존재한다면 이 문자를 지우고 남은 문자열을 이어 붙입니다. 이 과정을 연속한 2개의 같은 문자가 없을 때까지 반복하면 목표한 문자열을 얻게 됩니다.
문자열 s가 주어질 때, 위와 같은 과정을 적용해서 나오는 문자열을 출력하는 함수, solution을 완성해주세요.

 

[입력 형식]
- s는 길이가 1 이상 100\,000 이하의 문자열입니다.
- s는 알파벳 소문자로만 이루어져 있습니다.


[출력 형식]
- 중복을 제거한 문자열을 출력합니다.

 

 

[풀이]

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

    for (let str of s) {
        if (str === stack[stack.length - 1]) {
            stack.pop();
            continue;
        }
        stack.push(str);
    }
    return stack.join("");
}

 

[해설]

1. 빈 리스트 생성 (stack)

2. stack에 연속한 문자가 있을 경우 pop, 없다면 push 진행

3. 리스트를 join() 함수 사용하여 문자열로 변경

 

[느낀점]

이번 문제를 풀면서 CS에 대한 기초지식이 정말 중요하다는 것을 깨달았다. CS 지식이 없는 상태였다면 stack 개념을 떠올리지 못했을 것이다. 앞으로 CS 공부도 꾸준히 해나가야겠다는 생각을 했다.

 

 

[github] - RemoveDuplicatedWord.js

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