본문 바로가기
Javascript/자바스크립트 문제

[Javascript : programmers] 컨트롤 제트 (Lv.0)

by isfp_yykkng 2024. 8. 27.

[Javascript : programmers] 컨트롤 제트 (Lv.0)

 

문제

 

나의 정답 풀이

function solution(s) {
    let arr = s.split(' ');
    let sum = 0;
    for(let i=0; i<arr.length; i++){
        if(arr[i]=='Z') sum -= parseInt(arr[i-1]);
        else sum += parseInt(arr[i]);
    }
    return sum;
}

 

빈칸을 구분자로 나눠 배열에 저장하고 이 배열을 for문으로 순회하는 것이 핵심이다.

 

for문으로 반복하면서 원소가 Z라면 그 전 원소를 빼고, 아니면 그 원소를 더한다.

 

다른 사람 풀이

function solution(s) {
    const stack = []

    s.split(' ').forEach((target) => {
        if(target === 'Z') stack.pop();
        else stack.push(+target)
    })

    return stack.length ? stack.reduce((pre, cur) => pre + cur) : 0;
}

 

스택 개념으로 접근한 풀이이다.

 

Z이면 pop으로 마지막을 빼고, 아니면 push로 넣는다. 이후 모든 스택의 원소를 더한다.