순열과 조합

유형
중복
순서
예시
공식

조합

A B, A C, B C

nCr

순열

A B, B A

nPr

중복 조합

A A, A B, B B

(n + r - 1)Cr

중복 순열

A A, A B, B A, B B

n^r

O 초코 O 바닐라 O 딸기 O

칸막이 위치 설정

구분
순서 고려
중복 허용
대표 예시

순열

O

X

달리기 경주에서 순위 매기기

조합

X

X

대표 뽑기

중복순열

O

O

비밀번호 만들기

중복조합

X

O

과일 가게에서 과일 담기

  1. 순열 (Permutation)

  • 정의 : 서로 다른 n개에서 중복 없이 r개를 뽑아 순서대로 나열하는 경우의 수

  • visited 배열을 사용해 한 번 사용한 원소는 다시 사용 X

  1. 중복순열 (Permutation with Repetition)

  • 정의: 서로 다른 n개에서 중복을 허용하여 r개를 뽑아 순서대로 나열하는 경우의 수.

  • 키워드: 순서 O, 중복 O

  • 핵심 로직: 아무런 제약 없이 매번 모든 원소를 탐색합니다.

  1. 조합 (Combination)

  • 정의: 서로 다른 n개에서 중복 없이 r개를 순서에 상관없이 뽑는 경우의 수.

  • 키워드: 순서 X, 중복 X

  • 핵심 로직: start 인덱스를 사용하여 현재 위치보다 이전의 원소들은 다시 보지 않도록 합니다.

  1. 중복조합

  • 정의: 서로 다른 n개에서 중복을 허용하여 r개를 순서에 상관없이 뽑는 경우의 수.

  • 키워드: 순서 X, 중복 O

  • 핵심 로직: start 인덱스를 사용하되, 다음 재귀 호출 시 i + 1이 아닌 i를 넘겨주어 자기 자신을 다시 뽑을 수 있게 합니다.

Last updated