순열
-
[백준] 2309번 일곱난쟁이Algorithm Study/Python 2024. 2. 26. 11:51
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 풀이 입력으로 받는 9개의 숫자 중 7개의 합이 100이 되게 구해야한다. 이 경우에는 조합을 사용하여 9개 중 7개를 추출하여 모든 조합에 대하여 계산하면 쉽게 구할 수 있다. 9C7은 36으로 모두 확인한다고해도 많은 시간이 소요되지 않는다. import itertools data = [] for i in range(9): data.append(int(input())) data.sort() data_c..
-
[백준] 15649번 N과 M(1)Algorithm Study/Python 2021. 4. 19. 02:59
www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으..
-
[기능] 파이썬 순열, 조합 (Permutations, Combinations)Language Study/Python 2021. 4. 6. 04:26
순열 (nPr) 순열이란 서로 다른 n개중에 r개를 선택하는 경우의 수를 의미합니다. (순서 상관 있음) 조합 (nCr) 조합이란 서로 다른 n개중에 r개를 선택하는 경우의 수를 의미합니다. (순서 상관 없음) 프로그램을 짜다보면 순열과 조합을 사용하는 상황이 종종 발생한다. 그런 순간에 직접 재귀나 반복문을 이용하여 구현할 수 있지만 파이썬은 모듈을 이용하여 쉽게 사용할 수 있다. 바로 itertools의 permutations 와 combinations이다. import itertools chars = ['A', 'B', 'C'] perm = itertools.permutations(chars, 2) # 순열 comb = itertools.combinations(chars, 2) # 조합 print(..