본문 바로가기

코딩테스트/Python

[프로그래머스] 위클리 챌린지 5주차 모음 사전

내 코드

def solution(word):
    import itertools
    l = ['A','E','I','O','U']*5
    p=[]
    
    for i in range(1,6):
        p += ["".join(i) for i in itertools.permutations(l,i)] 
    
    p = sorted(set(p))
    
    return p.index(word)+1

만들수있는 문자들을 다 만든 후 word를 찾았다. 시간이 너무느렸다ㅠ

 

다른사람 코드를 보니 product라는 것이 있었다. 이걸 몰라서.. l에 *5를하고 풀었다ㅠ 내 코드에 product를 적용하면 이렇게 된다.

def solution(word):
    import itertools
    l = ['A','E','I','O','U']
    p=[]
    
    for i in range(1,6):
        p += ["".join(i) for i in itertools.product(l,repeat=i)] 
        
    p = sorted(p)
    
    return p.index(word)+1

set을 사용할 필요도 없어졌다. 속도도 향상되었다!!