Lv.1 소수 만들기

🤖문제

👍 2022년 1월 23일

<script>
  const getCombinations = (arr, n) => {
      const results = [];
      if (n === 1) return arr.map((v) => [v]);
      arr.forEach((fix, i, origin) => {
          const rest = origin.slice(i + 1);
          const combinations = getCombinations(rest, n-1);
          const attached = combinations.map((v) => [fix, ...v])
      results.push(...attached);
      });
      return results;
  }

  const decimal = (num) => {
      for (let i=3; i<parseInt(num/2); i++) {
          if (num % i === 0) return false
      }
      return true;
  }

  function solution(nums) {
      let answer = 0;
      const arrays = getCombinations(nums, 3);
      arrays.forEach((arr,i) => {
          let sumNumber = arr.reduce((acc, val) => {return acc+val}, 0);
          if (sumNumber % 2 !== 0) {
              decimal(sumNumber) ? answer++ : {}
          };  
      })
      return answer;
  }
</script>

매 번 선뜻 못 했던 조합구하는 법을 이번에야 확실히 안 것 같다.
복습 자주 해서 완전히 체화시켜야 하겠지만...

좋은 웹페이지 즐겨찾기