문제
A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다.
가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보
두 사람의 각 회의 가위, 바위, 보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요.
내 코드
function solution(a, b) {
let answer = "";
for(let i = 0; i < a.length; i++){
if(Math.abs(a[i] - b[i]) === 1){
if(a[i] > b[i]) answer += "A";
else answer += "B";
}else{
if (a[i] > b[i]) answer += "B";
else if(a[i] === b[i]) answer += "D";
else answer += "A";
}
}
return answer;
}
let a = [2, 3, 3, 1, 3];
let b = [1, 1, 2, 2, 3];
console.log(solution(a, b));
나는 출력의 기준을 a와 b의 값을 빼서 절댓값이 1인 것과 그렇지 않은 것으로 분류하여 풀었다.
강사님 답 코드
function solution(a, b) {
let answer = "";
for(let i = 0; i < a.length; i++){
if(a[i] === b[i]) answer += "D";
else if(a[i] === 1 && b[i] === 3) answer += "A";
else if (a[i] === 2 && b[i] === 1) answer += "A";
else if (a[i] === 3 && b[i] === 2) answer += "A";
else answer += "B";
}
return answer;
}
let a = [2, 3, 3, 1, 3];
let b = [1, 1, 2, 2, 3];
console.log(solution(a, b));
해답의 코드는 A가 이긴 경우와 그렇지 않은 경우로 나눠 풀었다.