๐Ÿ“š Study/Baekjoon

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv2 | ์™„์ „ํƒ์ƒ‰ | ๋ชจ์Œ์‚ฌ์ „

์œฐ๊ฐฑ 2025. 10. 11. 06:21

https://school.programmers.co.kr/learn/courses/30/lessons/84512

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๊ทธ๋ž˜ํ”„๋กœ ํ’€์–ด์•ผํ•˜๋‚˜ ์‹ถ์—ˆ๋Š”๋ฐ ์ค‘๋ณต์ˆœ์—ด์„ ์ด์šฉํ•˜๋ฉด ํ•ด๊ฒฐ๊ฐ€๋Šฅํ–ˆ์Œ

from itertools import product

def solution(word):
    vowels = ['A', 'E', 'I', 'O', 'U']
    dict = []
    
    for i in range(1,6):
        for p in product(vowels, repeat=i):
            dict.append(''.join(p))
            
    dict.sort()
    return dict.index(word) + 1

 

dfs๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ์Œ

from itertools import product

def solution(word):
    vowels = ['A', 'E', 'I', 'O', 'U']
    dict = []
    
    def dfs(curr):
        if 1 <= len(curr) <= 5:
            dict.append(curr)
        if len(curr) == 5:
            return
        for vowel in vowels:
            dfs(curr + vowel)
    
    dfs("")
            
    dict.sort()
    return dict.index(word) + 1