💡문제접근
- 암호의 모음은 최소 1개, 자음은 최소 2개여야 하며 정렬된 상태여야 한다.
combinations
을 이용해서 푸는게 가장 간단할 것 같아서 combinations
을 이용했다. 백트래킹 연습을 위해서 백트래킹으로 푸는 방법도 조만간 수정해서 올려야겠다.
💡코드(메모리 : 31256KB, 시간 : 48ms)
from itertools import combinations
import sys
input = sys.stdin.readline
li = ['a', 'e', 'i', 'o', 'u']
L, C = map(int, input().strip().split())
arr = list(map(str, input().strip().split()))
result = []
for i in combinations(arr, L):
i = list(i)
i.sort()
i = str(''.join(map(str, i)))
result.append(i)
def check(password):
res = ""
global vo, con
password_li = list(password)
password_li.sort()
for i in password_li:
if i in li:
vo += 1
else:
con += 1
res += i
if vo >= 1 and con >= 2:
return res
result.sort()
for i in result:
vo, con = 0, 0
if i == check(i):
print(i)
💡소요시간 : 16m