본문 바로가기
Algorithm/프로그래머스(Programmers)

[ 자바스크립트(JavaScript) ] 프로그래머스 level2 - 짝지어 제거하기

by YWTechIT 2021. 10. 18.
728x90

📍 프로그래머스 2단계 - 짝지어 제거하기

프로그래머스 2단계 - 짝지어 제거하기


⚡️ 나의 풀이

이전에 한 스타트업의 FE 코딩 테스트를 치렀을 때 지금 문제와 비슷하게 출제되었다. 이 문제의 핵심은 같은 알파벳이 2개 붙어있는 짝을 어떻게 찾는지가 핵심인데, 결론적으로 스택(stack)을 이용해서 짝을 찾았다.

 

  1. 현재 stack이 비어있지 않고, stack[-1]이 현재 x와 같으면 stack의 제일 마지막 원소를 pop한다. (짝지어진 문자열이기 때문)
  2. 1번 조건에 충족하지 않으면 모두 stack에 넣는다.
  3. 주어진 문자열을 끝까지 탐색하고 남은 stack의 길이가 1보다 크면 짝지어 제거에 실패했기 때문에 0stack의 길이가 0이면 짝지어 제거에 성공했기 때문에 1을 리턴한다.

 

728x90

 

function solution(s) {
    let stack = [];
    
    for (let x of s) {
        if (stack && stack[stack.length - 1] === x) {
            stack.pop();
        }else stack.push(x);
    }

  return stack.length >= 1 ? 0 : 1;
}
반응형

댓글