목차

모음 사전

ps
링크programmers.co.kr/…
출처프로그래머스
문제 번호84512
문제명모음 사전
레벨Level 2
분류

애드혹

시간복잡도O(n)
인풋사이즈n<=5
사용한 언어Python
해결날짜2021/08/30

풀이

코드

코드 1 - 모든 단어를 만들어서 위치를 찾기

"""Solution code for "Programmers 84512. 모음 사전".

- Problem link: https://programmers.co.kr/learn/courses/30/lessons/84512
- Solution link: http://www.teferi.net/ps/problems/programmers/84512
"""


import bisect
import itertools

def solution(word):
    dic = []
    for i in range(1, 6):
        dic.extend(itertools.product('AEIOU', repeat=i))
    return bisect.bisect(sorted(dic), tuple(word))

코드 2 - 수식으로 계산

"""Solution code for "Programmers 84512. 모음 사전".

- Problem link: https://programmers.co.kr/learn/courses/30/lessons/84512
- Solution link: http://www.teferi.net/ps/problems/programmers/84512
"""


def solution(word):
    v = 0
    count = [v := v + 5**i for i in range(5)]
    pos = sum(1 + 'AEIOU'.index(ch) * c for ch, c in zip(word, reversed(count)))
    return pos