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