Problem
- The first input array contains the correct answers to an exam.
- 첫 번째 배열은 시험에 대한 올바른 정답이다.
- The second one is “answers” array and contains student’s answers.
- Return the score for this array of answers, giving +4 for each correct answer, -1 for each incorrect answer, and +0 for each blank answer.
- 각 올바른 정답에는 +4, 올바르지 않은 정답에는 -1, 공백 정답에는 +0이 주어진다.
- 해답 배열에 대한 점수를 반환한다.
- If the score < 0, return 0.
Solution 01
function checkExam(arr1, arr2) {
let result = 0;
for (let i = 0; i < arr1.length; i++) {
if (arr[i] === arr2[i]) {
result += 4;
} else if (arr2[i] === '') {
result += 0;
} else {
result -= 1;
}
}
return result < 0 ? 0 : result;
}
checkExam(['a', 'b', 'c'], ['a', 'b', 'c']); // 12
checkExam(['a', 'b', 'c'], ['a', 'b', 'x']); // 7
checkExam(['a', 'b', 'c'], ['a', 'b', '']); // 8
checkExam(['a', 'b', 'c'], ['a', '', '']); // 4
checkExam(['a', 'b', 'c'], ['a', 'x', 'x']); // 2
checkExam(['a', 'b', 'c'], ['', '', '']); // 0
checkExam(['a', 'b', 'c'], ['x', 'x', 'x']); // 0
Solution 02
function checkExam(arr1, arr2) {
let result = 0;
for (let i = 0; i < arr1.length; i++) {
result += arr2[i] !== '' ? arr[i] === arr2[i] ? 4 : -1 : 0;
}
return result < 0 ? 0 : result;
}
checkExam(['a', 'b', 'c'], ['a', 'b', 'c']); // 12
checkExam(['a', 'b', 'c'], ['a', 'b', 'x']); // 7
checkExam(['a', 'b', 'c'], ['a', 'b', '']); // 8
checkExam(['a', 'b', 'c'], ['a', '', '']); // 4
checkExam(['a', 'b', 'c'], ['a', 'x', 'x']); // 2
checkExam(['a', 'b', 'c'], ['', '', '']); // 0
checkExam(['a', 'b', 'c'], ['x', 'x', 'x']); // 0