알고리즘 코딩테스트 핵심이론 강의 - 조합

이승민·2023년 6월 25일
0

알고리즘 공부

목록 보기
32/33

https://www.youtube.com/watch?v=U22u6E2udUI&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=41

📌 조합

  • 조합은 nCr로 표현하고 이는 n개의 숫자에서 r개를 뽑는 경우의 수를 뜻함
  • 조합과 비교되는 순열은 nPr로 표현되고 n개의 숫자 중 r개를 뽑아 순서를 고려해 나열할 경우의 수
    * 순열과 조합의 차이는 순서의 고려 유무임

◾ 순열과 조합의 핵심 이론

🔸 순열

  • 5개 중 2개를 순서대로 선택하는 경우의 수를 구하는 경우
    1번째 선택은 5개 데이터를 선택 가능하므로 5가지 선택 가능
    2번째 선택은 1번째에서 선택한 데이터를 제외한 4가지를 선택 가능
    따라서 5개 중 2개를 고르는 경우의 수는 5*4 = 20 가지가 됨

🔸 조합

  • r! 은 순서가 다른 경우를 제거하는 역할을 함
  • 5개 중 2개를 순서대로 선택하는 경우의 수를 구하는 경우
    1번째 선택은 5개 데이터를 선택 가능하므로 5가지 선택 가능
    2번째 선택은 1번째에서 선택한 데이터를 제외한 4가지를 선택 가능
    따라서 5개 중 2개를 고르는 경우의 수는 5*4 = 20 가지가 되고 거기서 나누기 2!를 하면 (2x1 = 2) 10이 나옴.

출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=vollollov&logNo=220915481071

◾ 알고리즘 핵심사항

1. 특정 문제를 가정하기

ex) 5개의 데이터에서 3개를 선택하는 조합의 경우의 수

2. 모든 부분 문제가 해결 된 상황이라고 가정하고 지금 문제 생각하기

  • 먼저 데이터 중 4개를 이미 선택 완료된 데이터라고 가정한 뒤, 마지막 데이터의 선택 여부에 따른 경우의 수를 계산
    만약, 데이터를 포함해 총 3개의 데이터를 선택하려면 선택이 완료됐다고 가정한 4개의 데이터에서 2개를 선택해야함.
    마지막 데이터를 포함하지않고 총 3개의 데이터를 선택하려면 이전 데이터 4개 중 3개를 선택해야 함.
    2가지 경우의 수를 합치면 5개 중 3개를 선택하는 경우의 수가 나옴

5개 중 3개를 선택하는 경우의 점화식
D[5][3] = D[4][2] + D[4][3]

3. 특정 문제를 해결한 내용을 바탕으로 일반 점화식 도출하기

조합 점화식
D[i][j] = D[i-1][j] + D[i-1][j-1]

0개의 댓글

관련 채용 정보