순열(Permutation) 서로 다른 것들 중 몇 개를 뽑아서 한줄로 나열하는 것 (nPr = n!) n>12인 경우, 시간 복잡도 폭발적으로 상승 void permutation(int cnt) { if (cnt == r) { // 순열 생성 완료 return; } for (i 1 to n) { if (isSelected[i]) continue; numbers[cnt] += i; isSelected[i] = true; permutation(cnt + 1); isSelected[i] = false; } } 조합(Combination) 서로 다른 n개의 원소 중 r개를 순서 없이 골라낸 것 void combination(int cnt int index) { if(cnt == r) { // 조합 생성 완료 ..