숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.
입출력 예 #1
본문과 동일합니다.
입출력 예 #2
10 + 20 + 30 + 40 = 100을 return 합니다.
입출력 예 #3
"10 Z 20 Z 1"에서 10 다음 Z, 20 다음 Z로 10, 20이 지워지고 1만 더하여 1을 return 합니다.
입출력 예 #4, #5
설명 생략
function solution(s) {
const answer = [];
for (const num of s.split(" ")) {
if (num === "Z") {
answer.pop();
} else {
answer.push(+num)
}
}
return answer.reduce((a,b) => a + b, 0);
}
function solution(s) {
s = s.split(" ")
// Z가 있다면, 이전것과 같이 삭제
while(s.includes('Z')) {
s.splice(s.indexOf('Z')-1,2)
}
return s.reduce((a,b) => a+Number(b), 0)
}
생각보다 어려운 문제였다. 2번까지는 잘 생각해냈는데, 4번 과정을 손으로 옮기는 과정이 어려웠다. 이거랑 비슷한 문제가 있었던 것 같은데?