순열

순서를 고려한다.

중복을 허용하지 않는 순열 ⇒ 일반 순열

중복을 허용하는 순열 ⇒ 중복 순열


조합

서로 다른 n개의 원소 중 r개를 순서 없이 골라낸 것을 “조합”이라고 한다.

순서를 고려하지 않는다.

image.png

// 중복이 아닌 조합

// cnt : 현재까지 뽑은 조합 원소 개수
// start : 조합 시도할 원소의 시작 인덱스
combination(cnt, start) 
	if cnt == r
		조합 생성 완료 
	
	else 
			for i from start to n - 1
					numbers[cnt] <- input[i];
					combination(cnt + 1, i + 1); // i+1이 아닌, start는 쓰지 않도록 조심하자!!
			end for 
end combination()

부분집합