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이긴하지만..ㅠㅠ)