본문 바로가기

728x90

itertools

(5)
순열, 조합, 중복 순열, 중복 조합 일상 생활에서 문제 해결을 위해 다양한 선택과 배열을 해야 할 때가 있습니다. 여러 가지 요소들을 조합하여 원하는 결과물을 만들어내는 순열, 조합, 중복 순열, 중복 조합은 프로그래밍에서 자주 활용되는 개념으로, 주어진 데이터를 다양한 방법으로 배열하는 방법을 배우게 됩니다. 이러한 기술들로 더 효율적이고 창의적인 코드를 작성할 수 있게 됩니다. 이번에는 순열과 조합, 그리고 중복 순열과 중복 조합에 대해 알아보겠습니다. 우선 이들의 개념과 차이점을 알아보고, 파이썬의 itertools 라이브러리를 활용하여 간단한 예제들을 소개해드릴 예정입니다. 이러한 개념들을 익히고 나면, 프로그래밍에서 다양한 문제를 해결하는 데에 큰 도움이 될 것입니다. 순열$($Permutation$)$ $_{n}P_{r}$ 순열..
[백준] 15652번 N과 M[4] [Python] - 중복조합 $_{n}H_{r}$ = $_{n+r-1}C_{r}$중복조합을 구하는 문제 더보기 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. $($1 ≤ M ≤ N ≤ 8$)$ 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 중복조합$(..
[백준] 15651번 N과 M[3] [Python] - 중복순열 $_{n}\Pi_{r}$ 중복순열을 구하는 문제 더보기 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 입력 첫째 줄에 자연수 N과 M이 주어진다. $($1 ≤ M ≤ N ≤ 7$)$ 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 중복순열$($permutation with repeation$)$ : 서로 다른 n개의 원소에서 r개를 중복하여 순서에 상관있게 선택하는 혹은 나열하는 것 입력 받기 import ..
[백준] 15650번 N과 M[2] [Python] - 조합 $_{n}C_{r}$ 조합을 구하는 문제 더보기 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. $($1 ≤ M ≤ N ≤ 8$)$ 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 조합이란 n개의 원소를 갖는 집합에서 r개의 원소를 선택하는 것 itertools.combinations : 조합을 구하는 함수 $_{n}C_{r}$ : itertools.co..
[백준] 15649번 N과 M[1] [Python] - 순열 $_{n}P_{r}$ 순열을 구하는 문제 더보기 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. $($1 ≤ M ≤ N ≤ 8$)$ 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 순열$($permutation$)$ : 서로 다른 n개의 원소에서 r개를 중복없이 순서에 상관있게 선택하는 혹은 나열하는 것 입력 받기 import sys from itertools import permutat..