[Algorithm] 조합 (Combination)

2024. 12. 5. 14:57·Algorithm/Basic

조합

어떤 리스트에서 N개를 중복 없이, 순서를 고려하지 않고 선택하는 것을 말한다.

예를들어 {1,2,3}에서 2개를 선택하는 경우

{1,2}
{1,3}
{2,3}

총 3가지 경우의 수가 존재한다.

 

조합 형태

int selectCount = 2; // 선택할 개수

void  combi(int start, vector<int> v)
{
   if (v.size() == selectCount)
   {
     // Logic
     return;
   }
   for (int idx = start + 1; idx < selectCount; idx++)
   {
     v.push_back(idx);
     Combination(idx, v);
     v.pop_back(idx);
   }
}

int main()
{
  vector<int> v;
  combi(-1, v);
}

  • combi 함수는 재귀 함수이다.
    • 기저 사례를 충족할 때까지(size == 2) 빈 벡터에 인덱스를 순차적으로 집어 넣는다.
    • 기저 사례를 충족하면 함수 호출을 종료하고 이전 단계로 돌아간다.
    • DFS와 동일한 방식으로 동작한다.

 

조합의 개수

  • nCr =  n개 중 r개를 선택할 수 있는 경우의 수 (중복이 없으며, 순서에 상관없이)
  • n = 총 개수
  • r = 선택할 개수

 

참고
 

[수학] 순열, 조합 공식 총정리

팩토리얼 ( ! ) 팩토리얼이란 서로 다른 n개를 나열하는 경우의 수를 의미합니다. 기호로는 n! 이렇게 쓰고 계산은 n부터 1씩 줄여나가면서 1이 될때까지의 모든 수를 곱합니다. 순열 ( nPr ) 순열이

coding-factory.tistory.com

 

'Algorithm > Basic' 카테고리의 다른 글

[Algorithm] 완전 탐색  (0) 2025.03.11
[Algorithm] 순열 (Permutation)  (1) 2024.12.04
[Algorithm] 재귀함수 (Recursion)  (0) 2024.12.04
'Algorithm/Basic' 카테고리의 다른 글
  • [Algorithm] 완전 탐색
  • [Algorithm] 순열 (Permutation)
  • [Algorithm] 재귀함수 (Recursion)
DevColIn
DevColIn
복잡함을 단순하게
  • DevColIn
    심플한 코딩생활
    복잡함을 단순하게
  • 전체
    오늘
    어제
    • 전체보기 (223)
      • Unreal 부트캠프 (49)
        • TIL (34)
        • 사전캠프 (7)
        • 본캠프 (8)
      • Unrael (10)
        • 환경설정 (0)
        • Basic (19)
        • Component (5)
        • GAS (GameplayAbilitySystem) (3)
        • AI (2)
        • Implement (10)
        • UI (1)
        • Error (1)
        • Network (2)
        • Tip (1)
      • Level Design (5)
      • Math (1)
      • Design Pattern (16)
      • Computer Science (2)
        • Network (1)
        • Database (1)
      • Algorithm (79)
        • Basic (4)
        • Practice (74)
      • C++ (4)
        • Basic (4)
      • Tool (0)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Design Pattern
    알고리즘
    gas
    AI
    레벨디자인
    액터
    component
    unreal
    퀘스트
    unrealengine
    Algorithm
    basic
    하드 레퍼런싱
    내일배움캠프
    KPT회고
    본캠프
    사전캠프
    게임동기화
    tsoftobjectptr
    Til
    DesignPattern
    assetmanager
    디자인 패턴
    GameplayEffect
    Animation
    디자인패턴
    c++
    소프트 레퍼런신
    Implement
    actor
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
DevColIn
[Algorithm] 조합 (Combination)
상단으로

티스토리툴바