코딩테스트 문제풀이/프로그래머스

[프로그래머스] 짝지어 제거하기

itaeiou 2021. 9. 3. 18:39
반응형

프로그래머스 짝지어 제거하기

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

 

코딩테스트 연습 - 짝지어 제거하기

짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙

programmers.co.kr

 

Level 2 라 쉽게 생각하고 시작했다.

 

처음엔 문제 그대로 돌아가게 짰다가 효율성에서 통과 못하고 실패.

 

그다음에 복잡도를 줄이려고 많이 고민했는데, 오히려 이게 패착이 된 듯 싶다.

 

도저히 생각이 안나서 힌트를 봤고, 의외로 너무 쉽게 풀렸다...

 

 

반복문으로 확인하고 문자열에서 일부 삭제 (X)

 

push/pop으로 마지막만 확인(O)

 

결과 코드

function solution(s)
{    
    let check = [];
    
    for(let char of s) {
        if(check.length == 0) {
            check.push(char);
        } else if(check[check.length-1] != char) {
            check.push(char);
        } else {
            check.pop();
        }
    }
    
    return check.length == 0 ? 1 : 0;
}

 

반응형