프로그래머스

[프로그래머스/Level2] 모음사전 (Python)

굴잉 2024. 6. 20. 12:36
728x90

 

문제 설명

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

단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요.

제한사항

  • word의 길이는 1 이상 5 이하입니다.
  • word는 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다.

 

입출력 예

word result
"AAAAE" 6
"AAAE" 10
"I" 1563
"EIO" 1189

 


문제 풀이

✏️ 풀이 코드

from collections import deque

next_chars = {"A": "E", "E": "I", "I": "O", "O": "U", "U": "A"}

def solution(word):
    count = 1
    chars = deque(["A"])

    while word != "".join(chars):
        if len(chars) == max_length:
            while chars[-1] == "U":
                chars.pop()

            chars[-1] = next_chars[chars[-1]]
        else:
            chars.append("A")

        count += 1

    return count

 

🔗 문제 출처

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

728x90