본문 바로가기
알고리즘

Programmers - 모음사전(Python)

by 장중앙 2021. 9. 29.

https://programmers.co.kr/learn/courses/30/lessons/84512?language=python3# 

 

코딩테스트 연습 - 5주차_모음사전

사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니

programmers.co.kr

 

풀이

최대 길이는 5로 고정, 각 칸마다 5개의 알파벳이 들어올 수 있음

경우의 수?, 수학적 풀이가 필요함

5개의 칸의 "AAAE"의 경우 "A -> AA -> AAA  -> AAAA"까지인 1+1+1+1=4에서

"AAAAA"~"AAAAU"의 5 뿐만 아니라 "AAAAU -> AAAE"와 같은 자릿값의 이동에 대한 갯수도 포함하여 수식을 생각해야한다.

* 즉 자리수가 바뀌는 규칙은 (x5)+1이다.

 

                         * 글로 표현하기가 어려워 "AAI"에 대한 예시그림

 

def solution(word):
    answer = 0
    # 반복, 자리수 건너띄기를 위한 값
    dic={"A":0, "E":1, "I":2, "O":3, "U":4}
    
    for i in range(len(word)):
        for j in range(4, i, -1):
            answer += 5 ** (j-i) * dic[word[i]]
        answer += 1 + dic[word[i]]
    return answer

댓글