function solution(ineq, eq, n, m) {
var answer = 0;
return answer;
}
최종 코드
테스트 1 〉통과 (0.06ms, 33.4MB) 테스트 2 〉통과 (0.06ms, 33.4MB) 테스트 3 〉통과 (0.05ms, 33.6MB) 테스트 4 〉통과 (0.06ms, 33.4MB) 테스트 5 〉통과 (0.06ms, 33.4MB) ...
수식이 곧 문자열이라고 생각했는데, 잘못 생각한 듯하여 혹시 "문자열을 수식으로 바꾸는 함수가 있나?" 찾아봤습니다.
eval
그러나 eval은 보안, 성능 저하, 명확하지 않은 코드의 의도들로 인해 사용을 지양한다고 합니다.
function solution(ineq, eq, n, m) {
// 결과를 담는 answer
let answer = 0;
// 등호 여부를 확인하는 isEqual
const isEqual = eq === "=" ? "=" : "";
// 문자열을 수식으로 바꾸는 calc
let calc = eval(`${n} ${ineq}${isEqual} ${m}`);
answer = calc ? 1 : 0;
return answer;
}
찐 최종 코드
동적으로 코드를 실행해야 하는 경우에 new Function이라는 객체를 활용하여 문자열로 표현된 수식을 계산할 수 있다고 합니다.
function solution(ineq, eq, n, m) {
// 결과를 담는 answer
let answer = 0;
// 등호 여부를 확인하는 isEqual
const isEqual = eq === "=" ? "=" : "";
// 수식을 계산하는 함수 생성
const calculate = new Function('n', 'm', `return n ${ineq}${isEqual} m`);
// 함수로 계산식 생성
const calc = calculate(n, m);
answer = calc ? 1 : 0;
return answer;
}