[js] 문자열 계산기_Calculator
[문제 설명]
문자열 계산식을 입력받는 계산기를 만들려고 합니다. 계산식은 덧셈(+), 뺄셈(-), 숫자로만 이루어져 있습니다.
계산식 s가 주어질 때, 계산식의 계산 결과를 출력하는 함수, solution을 완성해주세요.
예를 들어, s가 -3+26-7로 주어질 때, 계산식의 계산 결과는 16 (-3 + 26 -7)입니다.
[제한 사항]
- 계산식은 덧셈(+), 뺄셈(-), 숫자로만 이루어져 있습니다.
[입력 형식]
- s는 길이가 1 이상 10 이하의 문자열입니다.
[출력 형식]
- 계산식의 계산 결과를 int 형식으로 출력합니다.
[문제 풀이]
function solution(s) {
return eval(s);
}
[해설]
eval() 함수는 string을 매개변수로 받는다. 즉, 문자열로 연산식을 구성하면 eval() 함수로 계산이 가능하다. 문자열이 아니면 인자를 그대로 반환한다.다만 악의적인 영향을 받았을 수 있는 문자열을 eval() 함수로 실행한다면 문제가 생길 수 있다. 따라서 eval() 함수를 사용하지 말아야 할 때를 인식하고 있어야 한다. 이는 아래 사이트에서 자세히 확인할 수 있다.https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/eval
[느낀점]
사실 처음에 문제를 읽었을 때는 문자열을 끊고, int형으로 변환하고, 다시 계산하는 방식을 생각했다. 하지만 찾아보니 eval() 함수로 문제를 쉽게 해결할 수 있었고, 역시 다양한 문제를 접해봄으로써 여러 함수의 사용법을 익혀두는 것이 좋다는 것을 알 수 있었다. 앞으로도 꾸준히, 자체적으로 코딩테스트를 진행하여 여러 함수를 직접 활용하고 문제를 해결함으로써 clean code를 작성할 수 있도록 노력해나갈 것이다.
[github] - Calculator.js