js/[문제풀이] programmers

[js] 문자열 계산기_Calculator

우금붕 2023. 1. 9. 21:01

[문제 설명]

문자열 계산식을 입력받는 계산기를 만들려고 합니다. 계산식은 덧셈(+), 뺄셈(-), 숫자로만 이루어져 있습니다.
계산식 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

https://github.com/yh725k/javascript.git