오늘의 TIL(2024.11.04)

Jin·2024년 11월 5일

백준 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 인자를 통해 각 원소가 몇 번 반복되는지 결정할 수 있습니다.
profile
develop을 꿈꾸는

0개의 댓글