[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로 넣는다. 이후 모든 스택의 원소를 더한다.
'Javascript > 자바스크립트 문제' 카테고리의 다른 글
[Javascript : programmers] 이진수 더하기 (Lv.0) ft.진수변환 💥 (0) | 2024.08.27 |
---|---|
[Javascript : programmers] 소인수분해 (Lv.0) (0) | 2024.08.27 |
[Javascript : programmers] 리스트 자르기 (Lv.0) (0) | 2024.08.27 |
[Javascript : programmers] 2의 영역 (Lv.0) (0) | 2024.08.27 |
[Javascript : programmers] 7의 개수 (Lv.0) (0) | 2024.08.27 |