문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
메모
정답
function solution(s) {
// s를 배열로 만든다
const arr = s.split(" ");
// 배열의 값이 "Z"면 이전 값에 -를 붙인 형태로 바꾼다
// 그렇지 않으면 값을 그냥 숫자로 바꾼다
// 합계를 구한다
return arr.map((x, idx) => (x === "Z" ? -arr[idx - 1] : Number(x))).reduce((a, b) => a + b);
}
function solution(s) {
const arr = [];
// s를 배열로 만들어서 각각의 값을 순회한다
// 값이 "Z"면 arr의 마지막 값을 지운다
// 그렇지 않으면 arr에 값을 숫자 형태로 푸시한다
s.split(" ").forEach(x => (x === "Z" ? arr.pop() : arr.push(+x)));
// arr에 값이 있으면 합계를 반환한다
// 그렇지 않으면 0을 반환한다
return arr.length ? arr.reduce((a, b) => a + b) : 0;
}