링크텍스트
주어진 문자들로 조합 가능한 암호들을 출력하는 프로그램을 만드는 문제이다.
이 문제는 파이썬의 itertools 라이브러리를 사용하여 쉽게 해결할 수 있다.
itertools 라이브러리의 combinations 함수를 사용하여 가능한 조합들을 만들면 되는데, 이때 조건을 만족시키지 않는 암호는 빼면 된다.
조건은 암호가 알파벳이 증가하는 순서로 배열되어야 한다는 것과 암호는 최소 한 개의 모음과 최소 두 개의 자음으로 이루어져야 한다는 것이다.
from itertools import combinations
l, c = input().split()
str = sorted(input().split())
combination = combinations(str, int(l))
for combi in combination:
count = 0
for i in combi:
if i in "aeiou":
count += 1 # 암호 중 모음 개수 세기
if count >= 1 and int(l) - count >= 2:
# 모음이 한 개 이상이고, 자음(전체-모음)이 두개 이상이라면 조건을 충족하므로 출력한다.
print(''.join(combi))