https://school.programmers.co.kr/learn/courses/30/lessons/120853
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[ 문제 ]

[ 내 풀이 ]
function solution(s) {
// 문자열 s를 공백을 기준으로 나누어 배열로 만듦
let temp_list = s.split(' ');
let sum = 0; // 합계를 저장할 변수 초기화
// 배열의 각 요소를 순회
for(let i = 0; i < temp_list.length; i++) {
// 현재 요소가 'Z'일 경우
if(temp_list[i] === 'Z') {
// 이전 숫자를 빼줌 (Z는 이전 값을 취소하는 의미)
sum -= Number(temp_list[i - 1]);
} else {
// 숫자를 더해줌
sum += Number(temp_list[i]);
}
}
return sum; // 최종 합계 반환
}
[ 다른 풀이 ]
// 스택처럼 푸는방법
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;
}
// indexOf + reduce 활용
function solution(s) {
let arr = s.split(" ");
while ( arr.indexOf('Z') > -1) {
arr.splice( arr.indexOf('Z')-1, 2);
}
return arr.reduce((a,b) => parseInt(a) + parseInt(b),0)
}
// 삼항연산자 + reduce 활용
function solution(s) {
s = s.split(' ');
let arr = [];
for (let v of s) v === 'Z' ? arr.length ? arr.pop() : '' : arr.push(v);
return arr.reduce((a,v)=>a+ +v,0);
}반응형
'Algorithm > Javascript' 카테고리의 다른 글
| [ 프로그래머스 ] 삼각형의 완성조건(1) ( JS ) (0) | 2024.07.19 |
|---|---|
| [ 프로그래머스 ] 배열 원소의 길이 ( JS ) (0) | 2024.07.14 |
| [ 프로그래머스 ] 숨어있는 숫자의 덧셈(1) ( JS ) (0) | 2024.07.10 |
| [ 프로그래머스 ] 합성수 찾기 ( JS ) (0) | 2024.06.28 |
| [ 프로그래머스 ] 주사위의 개수 ( JS ) (0) | 2024.06.26 |
