728x90
반응형

1. 문제점

프로그래머스 알고리즘 문제풀이 - 자바스크립트 [ 가위바위보 ]

2. 시도해본 것들

처음 봤을땐 막막했다. 문제 풀때마다 왜 이러지ㅋㅋㅋ

일단 모두 이기는 경우니까 경우의 수는 3개

그럼 for문 안에서 if문으로 걸러내야 겠다고 생각했다.

 

3. 해결과정

일단 문제를 글로 쓰면서 이해했다.

 

//  가위는 2, 바위는 0, 보는 5 손가락 갯수
// 가위는 2 > 보 5
// 바위는 0 > 가위 2
// 보는 5 > 바위 0

 

좀 알아보긴 어렵지만 이렇게 써서 문제를 이해하고 코드로 구현해봤다.

4. 알게 된 점

 

나의 문제풀이

function solution(rsp) {
    var answer = '';
//  가위는 2, 바위는 0, 보는 5 손가락 갯수
// 가위는 2 > 보 5
// 바위는 0 > 가위 2
// 보는 5 > 바위 0
    
    for(i=0; i<rsp.length; i++){
        if(rsp[i] == "5"){
           answer += 2;
        } else if (rsp[i] == "0"){
           answer += 5;
        } else {
           answer += 0;
        }
    }
    
    return answer;
}

타입스크립트면 어림도 없겠지만,

문자열도 배열처럼 사용할 수 있다는걸 이전에 배워서

타입변환없이 answer에 더했더니 정답이었다.

 

남의 문제풀이

/*
 가위는 2 바위는 0 보는 5
*/
function solution(rsp) {
    let arr = {
        2: 0,
        0: 5,
        5: 2
    };
    var answer = [...rsp].map(v => arr[v]).join("");
    return answer;
}

객체로 만들어서 map을 이용한 풀이법

깔끔하고 이해하기 쉽다. for문으로 모든걸 풀고 있지만

for문 없이 이런식으로 풀고 싶다ㅠㅠㅠ

이걸 봤으니 한번 머리에 외워두고 당장 코드로 적어봐야겠다.

728x90
반응형

+ Recent posts