Lv00_가위바위보

zzzzzang_gu·2023년 3월 6일
0

알고리즘

목록 보기
7/10

가위바위보

나의 풀이

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

매개변수로 받은 문자열을 split 메서드를 통해 배열로 바꾼뒤 for문으로 순회해 if문을 통해 각각의 문자에 맞는 값을 반환해 더해줬다.

다른 사람 풀이

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

arr 변수에 객체 생성 ,key(상대방이 내는 값) : value(상대방을 이기는 값) 저장
answer 변수에 문자열 매개변수를 전개연산자를 통해 배열로 받아 map 메서드를 통해 배열을 순회하며 arr객체에 대괄호 표기법을 사용해 value를 반환 한 뒤 join메서드로 문자열로 합치기...

객체 이용 방법, 전개연산자, map 메서드,, 아직 어느 순간에 이용해야하는지 잘... 생각을 해내지 못하겠다.. 좀 더 많이 생각해보고 많이 풀어봐야겠다.

추가+

function solution(rsp){
	return rsp.split('').map((v)=> v==="2" ? 0 : (v==="5" ? 2 : 0)).join('')
}

삼항연산자를 통해 푸는 법. 초반 문제 풀이 때 삼항연산자 중첩 사용이 복잡해 포기하고 for문 if문을 사용했다. 이렇게 중첩 사용하는 방법을 까먹지 말고 잘 사용하도록 노력해봐야겠다.

profile
프론트엔드 개발자가 되겠습니다🔥

0개의 댓글