문자열 s에서 같은 알파벳 2개 붙어있는 짝을 찾가 제거한 뒤 앞 뒤로 문자열을 이어 붙인다 이 과정을 반복해 문자열을 모두 제거할 수 있다면 1 아니면 0을 리턴
나의 풀이
function solution(s) {
const stack = [];
for (let char of s) {
if (stack.length > 0 && stack[stack.length - 1] === char) {
// 스택이 비어있지 않고, 현재 문자가 스택의 맨 위와 같다면 짝을 이루는 것이므로 스택에서 제거
stack.pop();
} else {
// 짝을 이루지 않는 경우라면 스택에 추가
stack.push(char);
}
}
return stack.length === 0 ? 1 : 0;
}
stack 빈 배열 작성
for .. of 문자열 순회하여 각 상황에 맞게 해당 문자를 제거하고 추가한다
for ... of 문을 사용했을때 답은 맞았지만 시간이 초과되어 아래와 같이 수정했다
리팩토링
function solution(s){
const stack = [];
let index = 0;
while (index < s.length) {
if (stack.length > 0 && stack[stack.length - 1] === s[index]) {
stack.pop();
} else {
stack.push(s[index]);
}
index++;
}
return stack.length ? 0 : 1;
}