Lv.2 짝지어 제거하기

ujinujin·2022년 1월 29일
0

코딩테스트 뿌시기

목록 보기
26/57

🤖문제

👍 2022년 1월 29일

시간초과 나온 코드

<script>
  function solution(s) {
      let tmp = true;
      while (tmp) {
          tmp = false;
          for (let i=0; i<s.length-1; i++) {
              if (s[i] === s[i+1]) {
                  tmp = true;
                  s = s.replace(s.substr(i, 2), "");
                  break
              }
          }  
      }
      return s.length === 0 ? 1 : 0;
  }
</script>

새로 풀어서 통과한 코드

스택 만들어놓고 for문으로 s문자열 돌면서 스택에 추가 or 삭제
조건: 스택의 마지막 원소와 지금 반복문의 문자가 같으면 pop, 다르면 push

<script>
  function solution(s) {
      let stack = [];

      for (let i=0; i<s.length; i++) {
          if (stack.length !== 0) {
              s[i] === stack[stack.length-1] ? stack.pop() : stack.push(s[i])
          }
          else stack.push(s[i]) 
      }
      return stack.length === 0 ? 1 : 0 
  }
</script>
profile
백수와 취준생 그 사이 어디

0개의 댓글