
문제 요약: L ,c 의 숫자가 주어지고 문자가 주어졌을때
L 의 개수의 맞게 조합하여 사전순으로 나열하기 (이때 모음의 갯수는 최소 1개 자음은 최소 2개가 있어야한다.)
해결 방안: 조합(combination) 사용 하여 조합한것들을 모두 가져와서 조건에 맞는 애들만 출력하기
1 2 3 4 5 6 7 8 9 10 11 12 13 | from itertools import combinations l,c=map(int, input().split()) alist=list(map(str, input().split())) alist.sort() ans=combinations(alist,l) for i in ans: m=0 for k in i: if k in "aeiou": m +=1 if m>=1 and l-m>=2: print("".join(i)) | cs |
다른 방안
전체를 조합하지 않고
입력받은 문자들을 모음온 모음끼리 자음은 자음끼리 의 배열 2개를 만들어서 이 두놈을 조합해도 될것같음
근데 아직 못해봄 ㅈㅅ