[백준/Python]1759_암호 만들기
2021. 6. 17. 15:03ㆍ백준 알고리즘
문제
https://www.acmicpc.net/problem/1759
풀이
\( _{C}\mathrm{C}_{L} \) 의 모든 조합을 오름차순으로 정렬하여 출력합니다.
단, 아래의 조건을 만족해야 합니다.
- 최소 한 개의 모음을 포함해야 합니다.
- 최소 두 개의 자음을 포함해야 합니다.
코드
import sys
from itertools import combinations
l, c = map(int, sys.stdin.readline().rstrip().split())
alps = list(sys.stdin.readline().rstrip().split())
vowels = ['a', 'e', 'i', 'o', 'u']
answer = []
candidates = list(combinations(alps, l))
for candidate in candidates:
# 최소 한 개의 모음 & 최소 두 개의 자음
if len(set(vowels) & set(candidate)) >= 1 and len(set(candidate) - set(vowels)) >= 2:
answer.append(''.join(sorted(candidate)))
answer.sort()
for i in answer:
print(i)
'백준 알고리즘' 카테고리의 다른 글
[백준/Python]14503_로봇 청소기 (0) | 2021.06.18 |
---|---|
[백준/Python]1965_상자넣기 (0) | 2021.06.18 |
[백준/Python]10972_다음 순열 (0) | 2021.06.17 |
[백준/Python]2004_조합 0의 개수 (0) | 2021.06.16 |
[백준/Python]9251_LCS (0) | 2021.06.16 |