조합 js

서재환·2021년 10월 19일
0

CT

목록 보기
2/8

조합 (nCr)

n개 중에서 r개를 뽑을 때 순서를 고려하지 않고 뽑는 경우의 수

for문


조합도 순열과 마찬가지로 for문을 통해 작성하는 방법과 재귀를 통해 작성하는 방법이 있다.
우선 for문을 통해 작성하는 방법을 보자. 

for 문의 갯수가 뽑는 갯수가 된다. 아래에선 2번 썼으니까 배열 arr에서 2개 뽑는다는 의미이다.
j는 i보다 1큰 것을 알 수 있는데 그렇게 되면 i와 j가 겹칠 일은 발생하지 않는다.

let arr = ['a', 'b', 'c', 'd', 'e'];
let cnt = 0;

function combination() {
    for(let i = 0; i < arr.length; i++) {
        for(let j = i+1; j < arr.length; j++) {
            cnt++;
            console.log(`${arr[i]} ${arr[j]}`)
        }
    }
}
combination()
console.log(cnt);

for문은 이해하기 쉬우므로 설명을 마치고 이제 재귀로 넘어가장

0개의 댓글