1 minute read

https://programmers.co.kr/learn/courses/30/lessons/92335

regex를 이용해서 풀고싶었는데 효율성 쪽에서 시간 초과가 났다

이 문제는 O(N)안의 시간 복잡도를 사용해야 하는 문제였다고,.

regex코드

// function solution(s) {
//   var answer = -1;
//   reg =
//     /a{2}|b{2}|c{2}|d{2}|e{2}|f{2}|g{2}|h{2}|i{2}|j{2}|k{2}|l{2}|n{2}|m{2}|o{2}|p{2}|q{2}|r{2}|v{2}|s{2}|t{2}|u{2}|v{2}|w{2}|x{2}|y{2}|z{2}/g;
//   // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
//   while (s.match(reg) != null) {
//     s = s.replace(reg, "");
//     if (s.length % 2 == 1) {
//       return 0;
//     }
//     if (s.length == 0) {
//       return 1;
//     }
//   }
//   if (s.length == 0) {
//     return 1;
//   } else {
//     return 0;
//   }
//   console.log(s.match(reg));
//   return 0;
// }

찾아본 사항

Array.prototype.pop()

  • **pop()** 메서드는 배열에서 마지막 요소를 제거하고 그 요소를 반환

js에서 queue, stack사용하는 법

  • 스택 (Stack)

    class Stack {
      constructor() {
        this._arr = [];
      }
      push(item) {
        this._arr.push(item);
      }
      pop() {
        return this._arr.pop();
      }
      peek() {
        return this._arr[this._arr.length - 1];
      }
    }
      
    const stack = new Stack();
    stack.push(1);
    stack.push(2);
    stack.push(3);
    stack.pop(); // 3
    
  • 큐 (Queue)

    class Queue {
      constructor() {
        this._arr = [];
      }
      enqueue(item) {
        this._arr.push(item);
      }
      dequeue() {
        return this._arr.shift();
      }
    }
      
    const queue = new Queue();
    queue.enqueue(1);
    queue.enqueue(2);
    queue.enqueue(3);
    queue.dequeue(); // 1
    
  • https://helloworldjavascript.net/pages/282-data-structures.html

최종 코드

function solution(s) {
  var answer = -1;
  list = [];
  if (s.length % 2 == 1) {
    //홀수면 바로 리턴
    return 0;
  }
  for (let i = 0; i < s.length; i++) {
    if (s[i] == list[list.length - 1]) {
      //pop() 메서드는 배열에서 마지막 요소를 제거하고 그 요소를 반환
      //같은 문자
      list.pop();
    } else {
      list.push(s[i]);
    }
  }
  console.log(list);
  if (list.length == 0) {
    return 1;
  } else {
    return 0;
  }
}
s = "baabaa";
s2 = "cdcd";
console.log(solution(s));
console.log(solution(s2));

// document.querySelector("#result").innerHTML = solution(s);

Tags:

Categories:

Updated: