[js] 가위 바위 보 (lv.0, 정답률 89%)

sookyoung.k·2024년 5월 14일
0
post-thumbnail

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

제한사항

  • 0 < rsp의 길이 ≤ 100
  • rsp와 길이가 같은 문자열을 return 합니다.
  • rsp는 숫자 0, 2, 5로 이루어져 있습니다.

나의 풀이

function solution(rsp) {
    return [...rsp].reduce((acc, cur) => {
        cur = cur == 2 ? 0 : cur == 0 ? 5 : 2;
        return (acc += cur);
    }, '');
}
  • reduce()를 사용하기 위해서 스프레드 연산자를 사용했다.
  • 조건은 삼항 연산자를 통해서 cur에 재할당 해주었고, 합쳐서 리턴하니까 됌

다른 풀이 1

function solution(rsp) {
    let arr = {
        2: 0,
        0: 5,
        5: 2
    };
    var answer = [...rsp].map(v => arr[v]).join("");
    return answer;
}
  • 객체를 이렇게 사용하기...! 와...! 신박
  • 여기서는 map()을 사용해서 요소를 바꿔주었다. 그리고 join()

다른 풀이 2

function solution(rsp) {
    return rsp.split("").map((v) => v==="2" ? 0 : (v==="0" ? 5 : 2)).join("")
}
  • 배열로 나눈 후 map()을 사용했다. 여기서는 삼항 연산자를 사용해서 요소를 바꿔주었다. 그후 join()
profile
영차영차 😎

0개의 댓글