코딩테스트 문제풀이/inflearn

[인프런] Node.js / 섹션2 - 1, 2차원 탐색 / 3. 가위 바위 보

sangchu 2023. 1. 7. 23:31

A가 이기면 A를 출력, B가 이기면 B를 출력, 비기면 D를 출력

1: 가위, 2: 바위, 3: 보

 

나의 풀이

function solution(a, b) {
  let answer = "";
  for (let i = 0; i < a.length; i++) {
    if (
      (a[i] === 1 && b[i] === 3) ||
      (a[i] === 2 && b[i] === 1) ||
      (a[i] === 3 && b[i] === 2)
    ) {
      answer += "A";
    } else if (
      (a[i] === 3 && b[i] === 1) ||
      (a[i] === 1 && b[i] === 2) ||
      (a[i] === 2 && b[i] === 3)
    ) {
      answer += "B";
    } else {
      answer += "D";
    }
  }

  return answer;
}

let a = [2, 3, 3, 1, 3];
let b = [1, 1, 2, 2, 3];
console.log(solution(a, b));

 

강사 풀이

function solution2(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(solution2(a, b));

나의 풀이와 강사풀이는 어떻게 보면 같지만, 강사는 기준점을 다르게 잡아서 코드가 짧아졌다.

기준점을 어떻게 잡느냐에 따라 달라진다.