본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 42 - 가위 바위 보)

728x90

 

# 문제

가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.



# 답안

// 방법 1) for문 사용
function solution(rsp) {
  let str = "";
  for (let i = 0; i < rsp.length; i++) {
    if (rsp[i] === "0") {
      str += "5";
    } else if (rsp[i] === "2") {
      str += "0";
    } else if (rsp[i] === "5") {
      str += "2";
    }
  }
  return str;
}


// 방법2) 방법1을 삼항연산자를 사용해서 줄이기
function solution(rsp) {
  let str = "";
  for (let i = 0; i < rsp.length; i++) {
    str += rsp[i] === "0" ? "5" : rsp[i] === "2" ? "0" : rsp[i] === "5" ? "2" : "";
  }
  return str;
}


// 방법3) map 사용하기: split으로 쪼개고, 쪼갠거를 map돌려서 재구성하고, join으로 붙이기
function solution(rsp) {
  return rsp.split("").map(d => {
    if (d === "0") return "5";
    if (d === "2") return "0";
    if (d === "5") return "2";
  }).join("");
}


// 방법4) 방법3을 삼항연산자를 사용해서 줄이기 
function solution(rsp) {
  return rsp.split("").map(d => d === "0" ? "5" : d === "2" ? "0" : d === "5" ? "2" : "").join("");
}
728x90