TIL 2021.7.21

오늘배운내용 정리

중복 순열

function rockPaperScissors (round) {
  // TODO: 여기에 코드를 작성합니다.
  round = round || 3;
  let RPS = ['rock','paper','scissors' ]
  let result = []
  function permutate(RPS,basket,round){
   if(round === 0){
     result.push(basket)
     return
   }
   for(let i = 0; i < RPS.length; i++){
     let currentPlay = RPS[i];
      permutate(RPS,basket.concat(currentPlay),round-1)
   }
  }
  permutate(RPS,[],round)
  return result
};

재귀로 수열을 만드는 방법을 배웠다.
재귀로 for문으로 진입하면서

for(let i = 0; i < RPS.length; i++){
     let currentPlay = RPS[i];
      permutate(RPS,basket.concat(currentPlay),round-1)
   }

이부분에서 i=0일때 for문을 round(사람수만큼 돌린다)

if(round === 0){
     result.push(basket)
     return
   }

재귀탈출조건은 위와같다
이런식으로 재귀를 돌다보면 중복수열을 완성시킬수있다

좋은 웹페이지 즐겨찾기