문제
https://school.programmers.co.kr/learn/courses/30/lessons/120902
💻 풀이
이 문제를 보고 eval()로 풀고 싶다는 유혹을 받았으나... 정정당당하게 알고리즘으로 승부를 보자.
- 공백으로 split 해서 숫자와 연산자를 순서대로 담은 배열을 만든다. 짝수번째 인덱스에는 숫자가, 홀수번째 인덱스에는 연산자가 담겨있다.
- sum 변수를 생성하고, i=0부터 2씩 증가시키며 i번째 숫자를 계속 sum에 축적하면 된다. 덧셈인지 뺄셈인지는 바로 앞에 위치한 i-1번째 연산자를 확인하면 된다.
- 다만 0번 인덱스에 있는 숫자부터 sum에 축적하려고 보면 확인할 i-1번째 연산자라고 할 게 없으므로, sum에 기본적으로 arr[0]을 설정한 다음 i=2부터 축적하도록 한다.
function solution(my_string) {
const arr = my_string.split(' ');
let sum = Number(arr[0]);
for(let i = 2; i < arr.length; i += 2) {
arr[i - 1] === '+' ? sum += Number(arr[i]) : sum -= Number(arr[i]);
}
return sum;
}
'알고리즘 이론 & 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv.0 | 소인수분해 (0) | 2023.07.19 |
---|---|
프로그래머스 Lv.0 | 이진수 더하기 (0) | 2023.07.09 |
프로그래머스 Lv.0 | 공던지기 (0) | 2023.07.08 |
프로그래머스 Lv.0 | 구슬을 나누는 경우의 수 (0) | 2023.07.07 |
프로그래머스 Lv.0 - 직각삼각형 출력하기 +) nodejs readline (0) | 2023.07.06 |