OX퀴즈, Javascript

cptkuk91·2023년 2월 28일
1

Algorithm

목록 보기
149/161
post-thumbnail

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120907?language=javascript

코드

function solution(quiz) {
    let result = [];
    
    for(let i = 0; i < quiz.length; i++){
        let tmpQuiz = quiz[i];
        let [left, calculate, right, equal, answer] = tmpQuiz.split(" ");
        let checkResult = eval(`${left} ${calculate} ${right}`);
        
        if(checkResult.toString() === answer){
            result.push("O");
        } else {
            result.push("X");
        }
    }
    
    return result;
}

풀이

eval()은 문자로 표현된 Javascript 코드를 실행하는 함수입니다.
ex) eval("2 + 2"); // 4를 반환
따라서 코드를 설명드리자면, 우선 quiz를 구조분해할당을 통해 quiz[i]를 쪼갭니다.
이후 eval을 통해 answer값을 구합니다. 현재 eval을 통해 구한값은 Number고, answer는 String입니다. 따라서 eval을 통해 구한값을 toString()으로 변환하거나, answer값을 Number type으로 변환하면됩니다. (checkResult.toString() === answer) 대신, checkResult === +answer와 같이 작성해도 문제 없습니다.
eval()을 통해 구한값이 answer와 같다면 result.push("O")을 아니라면 "X"를 push하여 원하는 값을 구하면 됩니다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글