본문 바로가기
알고리즘

프로그래머스 위클리 체인지 5주차 - 모음사전

by Lihano 2021. 10. 8.
반응형

풀이 언어 : PYTHON

 

def solution(word):
    global alphabet
    global dictionary
    
    alphabet = ["A", "E", "I", "O", "U"]
    dictionary = []
    
    for a in alphabet :
        DFS(a)
        
    return dictionary.index(word)+1

def DFS(s) :
    
    if len(s)>5 :
        return
    
    dictionary.append(s)
    
    for char in alphabet :
        DFS(s + char)

 

이번 문제는 출제자의 의도가 명확하게 보여서 좋았다.

어느모로 보나 이건 깊은 탐색을 사용하여 풀라고 만들어진 문제 같다.

A부터 시작해 DFS 탐색으로 알파벳을 하나씩 추가해주면서

단어의 길이가 5를 넘을 때 탐색을 종료시켜준다.

카운트를 세면서 목표 언어를 발견했을 때 함수를 종료시켜주는 방법도 있고 그게 작동 시간이 짧겠지만

난 그냥 사전의 모든 언어를 구해놓고 거기에서 목표 언어의 인덱스를 검색했다.

 

링크

코딩테스트 연습 - 5주차_모음사전 | 프로그래머스 (programmers.co.kr)

반응형

댓글