짝지어 제거하기

정하윤·2022년 11월 15일
0
function solution(s) {
let ss = s.split("");
for (let i = 0; i < ss.length; i++) {
  let j = i + 1;
  while (ss[i] === ss[j]) {
    j++; //같은알파벳 개수 한번에지우기위해 중복되는 개수찾기
  }
  if (ss[i] === ss[i + 1]) {
    ss.splice(i, j - i); //중복된개수만큼 제거
    i = i - 1;
  }
 }
}

이런식으로 코드를 작성해보았는데 자꾸 i가 위로가서 0에서 1이더해져서 결국 해결법을 못찾아서 다른식으로 풀어보았다.

function solution(s) {
  const stack = [];
  for (let i = 0; i < s.length; i++) {
    if (!stack.length || stack[stack.length - 1] !== s[i]) stack.push(s[i]);
    else stack.pop();
  }

  return stack.length ? 0 : 1;
}

0개의 댓글