백준 N과 M 시리즈
itertools
itertools.permutations
itertools.combinations
itertools.combinations_with_replacement
itertools.product
combination들은 순서를 고려하지 않고 조합을 생성하기 때문에, (1, 2)와 (2, 1)을 같은 조합으로 보고 하나만 포함
| 함수 | 설명 | 예시 입력 | 예시 출력 | 중복 허용 | 순서 고려 |
|---|---|---|---|---|---|
| itertools.permutations | 주어진 길이만큼 순서 있는 조합(순열)을 반환 | permutations([1, 2, 3], 2) | [(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)] | 허용 안함 | 고려함 |
| itertools.combinations | 주어진 길이만큼 순서 없는 조합을 반환 | combinations([1, 2, 3], 2) | [(1, 2), (1, 3), (2, 3)] | 허용 안함 | 고려하지 않음 |
| itertools.combinations_with_replacement | 주어진 길이만큼 순서 없는 조합을 반환하며, 각 원소는 여러 번 선택 가능 | combinations_with_replacement([1, 2, 3], 2) | [(1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 3)] | 허용함 | 고려하지 않음 |
| itertools.product | 주어진 시퀀스의 모든 가능한 곱을 반환 (각 원소는 서로 반복될 수 있음) | product([1, 2, 3], repeat=2) | [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)] | 허용함 | 고려함 |
itertools.permutations: 원소의 순서가 중요하며, 중복을 허용하지 않습니다. 따라서 [1, 2]와 [2, 1]은 서로 다른 순열로 간주됩니다.itertools.combinations: 순서가 중요하지 않으며 중복을 허용하지 않습니다. [1, 2]와 [2, 1]은 같은 조합으로 간주되며, 둘 중 하나만 포함됩니다.itertools.combinations_with_replacement: 순서를 고려하지 않으며, 각 원소가 여러 번 선택될 수 있습니다.itertools.product: 모든 가능한 순서를 고려하여 중복된 조합도 포함할 수 있습니다. repeat 인자를 통해 각 원소가 몇 번 반복되는지 결정할 수 있습니다.