알고리즘 연습/브루트 포스

[Lv.2 / 프로그래머스 / 파이썬] 모음사전

김세진 2025. 6. 13. 17:31
반응형

 

 

 

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

풀이

 

사전 정렬 규칙에 따라 단어를 순서대로 만들었을 때, 주어진 단어의 번호를 출력해야 한다.

 

다음 단어를 만드는 법은 다음과 같다.

 

1. 'A'를 붙인다.

2. 끝 글자를 다음 순서의 모음으로 교체한다.

 

만약 끝 글자가 U일 경우, 그 다음 순서의 모음을 교체해야 하므로, U를 제거한 뒤 다음 순서로 넘어가면 된다.

 

 

def solution(word):
    alpha = ['A', 'E', 'I', 'O', 'U']
    
    cur_word = 'A'
    cnt = 1
    
    while cur_word != word:
        cnt += 1
        
        # 현재 단어 길이가 5보다 작으면 'A'를 붙임
        if len(cur_word) < 5:
            cur_word += 'A'
            continue
        
        # 끝 글자가 'U' 면 계속 제거
        while cur_word[-1] == 'U':
            cur_word = cur_word[:-1]
        
        # 끝 글자를 다음 순서의 글자로 바꿈
        cur_idx = alpha.index(cur_word[-1])
        cur_word = cur_word[:-1] + alpha[(cur_idx+1)%5]
        
    return cnt

 

 

 

 

 

반응형