vowel = {"A":0, "E":1, 'I':2, "O":3, 'U':4}
def powerset(n, k, deph):
if deph == 4:
return [[k]]
result = [[k]]
tmp = []
for i in range(0, n+1):
tmp += powerset(n, i, deph+1)
for i in range(len(tmp)):
tmp[i] = [k] + tmp[i]
return result + tmp
def getpowerset(n):
result = []
for i in range(n+1):
result += powerset(n, i, 0)
return result
def solution(word):
answer = 0
di = getpowerset(4)
f = [0] * len(word)
for i in range(len(word)):
f[i] = vowel[word[i]]
for i in range(len(di)):
if f == di[i]:
return i+1
return i
"""---------------------------------------------------"""
from itertools import product
def solution(word):
di = []
vowel = ['A', 'E', 'I', 'O', 'U']
for i in range(1, len(vowel)+1):
for j in product(vowel, repeat = i):
di.append(''.join(list(j)))
di.sort()
for i in range(len(di)):
if word == di[i]:
return i+1
첫 번째 방법은 재귀를 사용해서 사전에 순서대로 추가해 나가는 방식인데 해당 방식으로 푼 본인 조차도 완벽하게 이해하지 못해서 그냥 itertools의 product를 사용해 풀었다...... 재귀 방식도 정답이긴 했다.....