가위 바위 보

SJ·2022년 2월 12일
0

문제
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가 이긴 경우와 그렇지 않은 경우로 나눠 풀었다.

profile
Front-end

0개의 댓글

관련 채용 정보