Lv.1 두 개 뽑아서 더하기

ujinujin·2022년 1월 25일
0

코딩테스트 뿌시기

목록 보기
18/57

🤖문제

👍 2022년 1월 25일

<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;
    }

  function solution(numbers) {
      var answer = [];
      let allArr = getCombinations(numbers, 2);
      allArr.forEach((arr, i) => {
          answer.push(arr.reduce((acc, v) =>  acc + v))
      })
      answer = [...new Set(answer)]
      return answer.sort((a,b) => a-b);
  }
</script>

for문 두 번 중첩해서 쓰기 싫어서 조합 식 가져다가 풀었는데 코드가 더 길어서 그냥 for문 두 번 쓰는게 나았을 것 같다... ㅋㅋㅋㅋ

profile
백수와 취준생 그 사이 어디

0개의 댓글