알고리즘, CS

[프로그래머스 Lv. 0] 문자열 계산하기

차돌박이츄베릅 2023. 6. 9. 14:11

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;
}