본문 바로가기
프론트엔드로 가는 길/프로그래머스

31. 프로그래머스_가위바위보

by woody-j 2023. 1. 31.

if문을 사용해서 푸려다 새로운 방법으로 풀어보고싶어 이것저것 생각해봤다. 가장 효율적인 방법은 객체로 문자열치환이었다. 방정식을 생각해봤는데 생각보다 복잡해질 것 같고 아직까진 능력 부족인듯하다 ^^ 꺄륵

코딩일지

작성자
  최주희 작성일자 2022.01.31
세부 코딩 내용  
활동 기간 2022.01. 31
문제 가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.
나의 풀이   function solution(rsp) {
    let winRsp={"2":0,"0":5,"5":2}
    return rsp.split('').map(v=>winRsp[v]).join('')
} 

결과   통과
다른 풀이 function solution(rsp) {
    return rsp.split("").map((v) => v==="2" ? 0 : (v==="0" ? 5 : 2)).join("")
}

해석 삼항연산자  
키워드 코딩내용 생각
  1. 필요한 조건 정리


  • 객체로 문자치환






2. 풀이단계 정리


  • 가위바위보 숫자를 객체로 생성
  • rsp를 배열로 분리시킨다
  • map으로 문자를 합친다.
어제 했던 모스부호를 이용해서 풀었다.
그 과정에서 알게된 것은 rsp.split(‘’)와
[…rsp]가 같다는 것.
깊은 복사의 개념은 알고 있었지만 이렇게 사용하지않고 split 함수를 사용해서 배열을 분리 시켰다. 
깊은 복사를 이용해 배열 분리를 해야겠다.