[프로그래머스 | Javascript] 코딩테스트 입문 - 컨트롤 제트

박기영·2022년 11월 8일
0

프로그래머스

목록 보기
77/159
post-custom-banner

solution

function solution(s) {
    const input = s.split(" ");
    
    let stack = [];
    
    for(let index = 0; index < input.length; index++){
        if(input[index] === "Z"){
            stack.pop();
            
            continue;
        }
        
        stack.push(input[index]);
    }
    
    const sum = stack.reduce((acc, curr) => {
        return acc + Number(curr);
    }, 0);
    
    return sum; 
}

이 문제는 풀긴 풀었는데, 푸는데 꽤 시간이 걸렸다.
Z라는 문자가 연속으로 나오는 경우가 어떤 의미인지 파악하지 못했던 것이 그 원인이다.

만약

"1 2 3 Z Z Z"

라는 입력값이 주어지면, 이는

1 + 2 + 3 - 3 - 2 - 1

을 의미한다.

이는 스택 구조를 이용해서 쉽게 구현 할 수 있다.
Z가 입력되면 스택에 들어있던 값을 빼주면 된다.
문제만 이해하면 스택을 활용하는 기초 문제로 난이도가 확 내려가는 것 같다.(레벨 0이긴하지만..ㅠㅠ)

profile
나를 믿는 사람들을, 실망시키지 않도록
post-custom-banner

0개의 댓글