https://school.programmers.co.kr/tryouts/85890/challenges?language=javascript
처음에 +랑 -만 사용한다고 하여 연산자를 기준으로 split으로 나눠서 실행해보니까 통과되어서 채점을 해봤다.
function solution(my_string) {
var answer = 0;
let newString = [];
if (my_string.includes('+')){
newString = my_string.split('+');
answer = Number(newString[0]) + Number(newString[1]);
} else {
newString = my_string.split('-');
answer = Number(newString[0]) - Number(newString[1]);
}
return answer;
}
테스트 케이스 10개중에 2개만 맞길래 왜 그런지 제한사항을 다시 살펴봤다.
연산자가 여러개 들어갈 수 있어서 틀렸던 것 같다.
그리고 연산자와 숫자는 공백으로 구분되어 있다고 하니 공백을 기준으로 나눠보기로 했다.
function solution(my_string) {
var answer = 0;
const newString = my_string.split(" ");
answer = Number(newString[0]);
for(let i = 1; i < newString.length; i += 2) {
const op = newString[i];
const num = Number(newString[i+1]);
if (op === '+') {
answer += num;
} else {
answer -= num;
}
}
return answer;
}
패턴이 숫자 - 연산자 - 숫자 - 연산자 - 숫자...
이런식으로 될 수 밖에 없으니 첫 숫자는 결과값에 저장해주고 나머지는 연산자에 따라 계산해줬다.
제한사항을 잘 읽어보자