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
, +b
는 number
타입으로 변환하기 위한 코드이다.
그 외에는 직관적으로 이해가 잘된다.