반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

가위 바위 보 본문

반응형

해결법

사실 해결법은 간단하다. 하지만 난 일일히 비교해서 풀었다. 강사님 풀이에서는 A가 이기는 기준을 다 나열하고 아닌 경우 B 가 이긴 경우로 했다.

 

내 풀이

<html>
  <head>
    <meta charset="UTF-8" />
    <title>출력결과</title>
  </head>
  <body>
    <script>
      function solution(a, b) {
        let answer = "";

        function result(x, y) {
          if (x === y) {
            answer += "D";
          } else if (x === 1) {
            if (y === 2) answer += "B";
            else answer += "A";
          } else if (x === 2) {
            if (y === 1) answer += "A";
            else answer += "B";
          } else if (x === 3) {
            if (y === 1) answer += "B";
            else answer += "A";
          }
        }

        for (let i = 0; i < a.length; i++) {
          result(a[i], b[i]);
        }

        return answer;
      }

      let a = [2, 3, 3, 1, 3];
      let b = [1, 1, 2, 2, 3];
      console.log(solution(a, b));
    </script>
  </body>
</html>

하나하나 다 경우의 수를 생각했다.

 

강사님 풀이

<html>
<head>
    <meta charSet="UTF-8">
    <title>출력결과</title>
</head>
<body>
<script>
    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));
</script>
</body>
</html>

우선 비기는 경우와 A가 이기는 경우를 두고 else로 B가 이기는 경우를 했다.

반응형

'코딩테스트 with JS > 자바스크립트 알고리즘 문제풀이(인프런)' 카테고리의 다른 글

회문 문자열  (0) 2022.08.13
등수구하기  (0) 2022.08.12
중복 문자 제거, indexOf  (0) 2022.08.10
substr(), substring(), slice()  (0) 2022.08.10
대문자 찾기  (0) 2022.08.07
Comments