function solution(s) {
s = s.split(" ")
while(s.includes('Z')) { // Z가 더이상 없을때까지 반복
s.splice(s.indexOf('Z')-1,2) // Z가 있다면 인전 인덱스의 요소와 같이 삭제
}
return s.reduce((a,b) => a+Number(b), 0) // b는 문자열이기때문에 Number로 숫자형으로 변환
}
s = s.split(" ")
: 주어진 문자열 s를 공백을 기준으로 나누어 문자열 배열로 변환.
이것은 입력 문자열을 토큰으로 나누어 각 숫자와 "Z"를 분리하는데 사용.
while(s.includes('Z')) { ... }
: "Z"가 배열 s에 포함되어 있을 때까지 반복.
이 부분은 "Z"를 처리하기 위한 반복문.
s.splice(s.indexOf('Z')-1,2)
: "Z"를 발견하면, 해당 "Z"와 바로 앞의 숫자를 배열에서 제거.
indexOf를 사용하여 "Z"의 인덱스를 찾고, splice를 사용하여 "Z"와 앞의 숫자를 제거.
return s.reduce((a,b) => a+Number(b), 0)
: 배열 s에 남아 있는 숫자를 합산하여 반환.
reduce를 사용하여 모든 숫자를 더하고, Number(b)를 통해 문자열을 숫자로 변환.
function solution(s) {
const arr = s.split(" ");
let answer = 0;
arr.forEach((v, i) => {
if(v === "Z") answer -= Number(arr[i-1]);
else answer += Number(v);
});
return answer;
}
이렇게 풀고 싶었는데, 한숨부터 나온다. 부럽다 이 분의 아타마...