Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[JavaScript] 프로그래머스 코딩테스트 입문 : 가위 바위 보 본문

⚙️ 코딩테스트

[JavaScript] 프로그래머스 코딩테스트 입문 : 가위 바위 보

썸머몽 2023. 3. 24. 00:36
728x90

📌  문제

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

 

**제한사항**

0 < rsp의 길이 ≤ 100

rsp와 길이가 같은 문자열을 return 합니다.

rsp는 숫자 0, 2, 5로 이루어져 있습니다.

📌  풀이

주어진 문자열에서 2가 나오면 0을, 0이 나오면 5를, 5가 나오면 2를 출력하는 if문으로 문제를 풀었다.

if문이 아니라 다른 방법으로는 어떻게 푸나 다른 사람들의 풀이를 보던 중 파이선의 딕셔너리 같은, 오브젝트를 활용한 코드를 봤다.

 

아래와 같이 이길 값을 arr안의 밸류로 정해주고, 주어진 문자열을 어레이로 변경한 후 arr로 호출해 다시 문자열로 만들었다.

map 부분이 잘 이해가 안 가는데... 아무튼 객체를 사용해서 푼 게 신기해서 체크했다. 그에 비하면 삐약삐약거리는 내 코드... ^.ㅜ

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

 

📌  코드

function solution(rsp) {
    let result = '';
    for (let i = 0; i < rsp.length; i++) {
        if (rsp[i] === '2') {
            result += '0' 
        } else if (rsp[i] === '0') {
            result += '5'
        } else if (rsp[i] === '5') {
            result += '2'
        }
    } return result;
}
728x90