본문 바로가기

프로그래머스 - 코딩테스트

[JavaScript][프로그래머스] - LVL.0 가위 바위 보


정답 1

상기 문제를 보고서 필자는 switch 문이 바로 떠올랐다. 그래서 다른 고민 없이 바로 switch 문을 적용해 해당 문제를 해결하기로 했다.

function solution(rsp) {
    return rsp.split("").map(d => {
        switch(d) {
            case "0" :
                return "5"
            case "2" :
                return "0"
            case "5" :
                return "2"
            default :
                return null;
        }
    }).join("");
}

결과는 정답이였다. 하지만 딱 보기에도 뭔가 코드가 너무 길다. 그리고 우아한 면이 상당히 없다. 다른 우아한 방식은 어떤것이 있는지 한번 둘러보았다.

 


정답 2

와 상당히 우아하면서도 이 문제에 최적화된 정답을 보았다.

function solution(rsp) {
    let arr = {
        2: 0,
        0: 5,
        5: 2
    };
    var answer = [...rsp].map(v => arr[v]).join("");
    return answer;
}

바로 객체를 사용하는 것이다.

 

객체의 키 : 값으로 가위 바위 보의 상성을 정리해놓고 키로 값을 찾아서 배열을 만들고 join 하여 정답을 도출했다. 객체를 활용한 상당히 창의적인 접근이였다.