2022-07-22 Lv2 짝지어 제거하기

정종훈·2022년 7월 22일

알고리즘 문제풀이

목록 보기
9/10

// 19:34 시작 

// 걸린시간 : 1시간 30분

// 걸린이유: 지속적인 시간 초과 이슈, 오랜만의 알고리즘 풀이로 인한 능지 이슈
// 실패사유: 1000000크기이므로 문자열을 수정하는 방법은 시간 초과

// 느낀점: 알고리즘 문제풀이는 열심히 대비하자

/* function solution(s) {
  // s문자열을 끝까지 스캔하면서 끝까지 스캔이 완료되면 종료

  // 연속으로 같은 문자가 나오면 그 사이를 splice로 지우고 다시 반복
  let i = 0;
  while (i < s.length - 1) {
    let backword = s[i];
    let frontword = s[i + 1];
    if (backword === frontword) {
      s = s.split("");
      s.splice(i, 2);
      s = s.join("");
      i = Math.max(i - 1, 0);
    } else {
      i++;
    }
  }
  if (!s) {
    return 1;
  } else {
    return 0;
  }
}
console.log(solution("baabaa")); */


function solution(s) {
  // s문자열을 끝까지 스캔하면서 끝까지 스캔이 완료되면 종료
  let stack = [];
  stack.push(s[0]);
  
  for (let i = 1; i < s.length; i++) {
    if (stack[stack.length - 1] !== s[i]) {
      stack.push(s[i])      
    } else {
      stack.pop();
    }
  }
  if (stack.length === 0 ) {
    return 1
  } else {
    return 0
  }

}
console.log(solution("baabaa"));
profile
괴발개발자에서 개발자로 향해보자

0개의 댓글