순열과 조합
유형
중복
순서
예시
공식
조합
❌
❌
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
과일 가게에서 과일 담기
순열 (Permutation)
정의 : 서로 다른 n개에서 중복 없이 r개를 뽑아 순서대로 나열하는 경우의 수
visited 배열을 사용해 한 번 사용한 원소는 다시 사용 X
중복순열 (Permutation with Repetition)
정의: 서로 다른 n개에서 중복을 허용하여 r개를 뽑아 순서대로 나열하는 경우의 수.
키워드: 순서 O, 중복 O
핵심 로직: 아무런 제약 없이 매번 모든 원소를 탐색합니다.
조합 (Combination)
정의: 서로 다른 n개에서 중복 없이 r개를 순서에 상관없이 뽑는 경우의 수.
키워드: 순서 X, 중복 X
핵심 로직: start 인덱스를 사용하여 현재 위치보다 이전의 원소들은 다시 보지 않도록 합니다.
중복조합
정의: 서로 다른 n개에서 중복을 허용하여 r개를 순서에 상관없이 뽑는 경우의 수.
키워드: 순서 X, 중복 O
핵심 로직: start 인덱스를 사용하되, 다음 재귀 호출 시 i + 1이 아닌 i를 넘겨주어 자기 자신을 다시 뽑을 수 있게 합니다.
Last updated