[프로그래머스 | Javascript] 코딩테스트 입문 - OX퀴즈

박기영·2022년 11월 11일
0

프로그래머스

목록 보기
86/159
post-custom-banner

solution

function solution(quiz) {
    let ans = [];
    
    quiz.forEach((item) => {
        const oneQuiz = item.split(" ");
        
        const X = Number(oneQuiz[0]);
        const Y = Number(oneQuiz[2]);
        
        let calc = 0;
        
        if(oneQuiz[1] === "+"){
            calc = X + Y;
        }
        
        if(oneQuiz[1] === "-"){
            calc = X - Y;
        }
        
        const result = Number(oneQuiz[4]);
        
        if(calc === result){
            ans.push("O");
        }
        
        if(calc !== result){
            ans.push("X");
        }
    })
    
    return ans;
}

문제 해결을 굉장히 직관적으로 써내려간 풀이이다.
이 풀이의 문제점은 인덱스를 정확하게 적어주며 풀었다는 것이라고 생각한다.
만약, 다른 케이스가 더 추가됐더라면 이 풀이는 좋지않다.
유동적으로 적용하기가 힘들기 때문이다.

다른 분 풀이

function solution(quiz) {
    var answer = [];
    return quiz.map(t => {
        const [calc, result] = t.split(' = ');
        const sign = calc.includes('+') ? 1 : -1
        const [a, b] = calc.split(sign === 1 ? ' + ' : ' - ');

        return +a + (+b * sign) === +result ? 'O' : 'X'
    });
}

다른 분의 풀이 중 좋은 것이 있어서 가져와봤다.
이해하기도 쉽고, 유동적으로 적용도 가능하다.
+a, +bnumber 타입으로 변환하기 위한 코드이다.
그 외에는 직관적으로 이해가 잘된다.

profile
나를 믿는 사람들을, 실망시키지 않도록
post-custom-banner

0개의 댓글