티스토리 뷰
https://school.programmers.co.kr/learn/courses/30/lessons/120853
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(s) {
const arr = s.split(" ")
let answer = 0
for(let i = 0; i < arr.length; i++) {
if(arr[i + 1] === "Z" || arr[i] === "Z") continue
answer += Number(arr[i])
}
return answer
}

pop()과 reduce 활용
function solution(s) {
const stack = []
s.split(" ").forEach(v => {
if(v === "Z") stack.pop()
else stack.push(Number(v))
})
return stack.length
? stack.reduce((acc, cur) => acc + cur)
: 0
}
- 나중에 안에 있는 요소들을 모두 더해줄 빈 배열 stack 을 만듦
- split(" ")을 활용해 띄어쓰기를 기준으로 주어진 s를 array로 만듦
- 배열 순회
- "Z"가 아닐 경우 stack에 숫자 push
- "Z"일 경우 stack의 마지막 숫자를 제거 (pop 이용)
- reduce는 배열의 길이가 0이면 다음과 같은 에러가 뜸
Reduce of empty array with no initial value
- stack의 길이가 0이 아닐 경우 reduce()를 이용해 모든 요소를 더하여 반환
- stack의 길이가 0일 경우 0을 반환

'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] Lv.0 - 7의 개수 (javascript) (0) | 2023.01.04 |
|---|---|
| [프로그래머스] Lv.0 - 공 던지기 (javascript) (0) | 2023.01.03 |
| [프로그래머스] Lv.0 - 아이스 아메리카노 (javascript) (0) | 2022.12.31 |
| [프로그래머스] Lv.0 - 짝수는 싫어요 (javascript) (0) | 2022.12.30 |
| [프로그래머스] Lv.0 - 한 번만 등장한 문자 (javascript) (0) | 2022.12.29 |
댓글
