728x90
나의 풀이 - combinations 함수를 이용)
import sys
from itertools import combinations
l, c = map(int, sys.stdin.readline().split())
alpha = list(sys.stdin.readline().split())
alpha.sort() #1
vowel = [ 'a', 'e', 'i', 'o', 'u' ] #2
res = []
for string in combinations(alpha, l): #3
vowel_count, consonant_count = 0, 0 #4
for i in string: #5
if i in vowel: #6
vowel_count += 1
else: #7
consonant_count += 1
if vowel_count > 0 and consonant_count > 1: #8
tmp = ''.join(string)
res.append(tmp)
for i in res:
print(i)
#1 : 정렬된 문자열을 선호한다 했으므로 입력받은 문자들 사전순으로 정렬
#2 : 모음 리스트 생성
#3 : alpha 리스트에서 입력받은 l개 만큼의 요소를 추출해서 조합 생성
#4 : 모음의 개수와 자음의 개수 0으로 초기화
#5 : 추출한 문자열의 요소 하나씩 반복
#6 : 추출한 문자열에 모음이 하나라도 있으면 vowel_count +1
#7 : 아니라면 consonant_count +1
#8 : 문제의 조건에 만족하면 res리스트에 삽입
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 25305 파이썬(python) : 커트라인 (0) | 2022.08.30 |
---|---|
[백준] 10102 파이썬(python) : 개표 (0) | 2022.08.30 |
[백준] 2580 파이썬(python) : 스토쿠 - (★) (0) | 2022.08.27 |
[백준] 9663 파이썬(python) : N-Queen - (★) (0) | 2022.08.27 |
[백준] 14889 파이썬(python) : 스타트와 링크 - (★) (0) | 2022.08.25 |