coding test - python/Programmers

Programmers / 모음 사전 / Python 파이썬

sillon 2022. 5. 26. 20:42
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 모음 사전 (2단계)

문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/84512

 


나의 풀이

from itertools import product

def solution(word):
    words = []
    for i in range(1, 6):
        for c in product(['A', 'E', 'I', 'O', 'U'], repeat=i):
            words.append(''.join(list(c)))
    words.sort()
    return words.index(word) + 1

처음에는 복잡하게 생각해서 sort를 안하고 문제를 풀었었다... 그래서 문제를 빙 돌아가면서 풀었는데 이게 맞았다!

 

위: sort로 정렬 전/ 아래: sort로 정렬 후

다른답안 (규칙 이용)

등비수열의 합을 이용한 풀이다.

def solution(word):
    answer = 0
    for i, n in enumerate(word):
        answer += (5 ** (5 - i) - 1) / (5 - 1) * "AEIOU".index(n) + 1
    return answer

※ 알아야 할 것

- product , 중복 순열을 이용해서 가능한 모든 조합을 만들고 sort함수로 정렬해줌

 

728x90
반응형