1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/120902
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 나의 풀이
1번째 접근. forEach + split으로 부호 +와 - 기준으로 쪼개서 풀었는데, 코드 실행에선 통과됐으나 채첨에서 빠꾸먹음.
확인해보니 이렇게하면 +와 -가 섞여있는 상태와 -에서 계산이 제대로 안먹힘
function solution(my_string) {
var answer = 0;
let numArr = [];
let isPlus = true;
let sum = 0;
if(my_string.includes("+")) {
numArr = my_string.split("+")
} else {
numArr = my_string.split("-")
isPlus = false;
}
numArr.forEach((num, i) => {
isPlus ? sum += Number(num) : sum -= Number(num);
})
answer = sum;
return answer;
}
2번째 접근. 부호에 공백을 항상 던져주는것같아서 그냥 공백으로 쪼갰고 채점 통과
function solution(my_string) {
var answer = 0;
let numArr = [];
numArr = my_string.split(" ");
let sum = Number(numArr[0]);
for(let i = 0; i < numArr.length; i++) {
if (numArr[i] == '+') {
sum += Number(numArr[i+1])
} else if (numArr[i] == '-') {
sum -= Number(numArr[i+1])
}
console.log("i번째 => ", sum)
}
answer = sum;
return answer;
}
3. 다른 사람 풀이
부호를 이용해 숫자들을 음수와 양수로 만든 다음, 최종적으로 값들을 더해줌
4. 배운 점
reduce
JavaScript - 배열 reduce() 사용법 및 예제
구문 자바스크립트의 reduce함수는 배열의 각 요소를 순회하며 callback함수의 실행 값을 누적하여 하나의 결과값을 반환 합니다. arr.reduce(callback[, initialValue]) 파라미터 callback function 다음 4가지의
tocomo.tistory.com
'알고리즘, CS' 카테고리의 다른 글
| [프로그래머스 Lv. 0] 삼각형의 완성조건 (2) (0) | 2023.06.14 |
|---|---|
| [프로그래머스 Lv. 0] 구슬을 나누는 경우의 수 (0) | 2023.06.12 |
| [프로그래머스 Lv. 0] 잘라서 배열로 저장하기 (0) | 2023.06.08 |
| [프로그래머스 Lv. 0] 영어가 싫어요 (0) | 2023.06.07 |
| 알고리즘 특강 - 4. 버블 정렬, 선택 정렬, 삽입 정렬 (1) | 2023.06.07 |