본문 바로가기
Problem Solving/프로그래머스

[프로그래머스|파이썬] 모음사전 (완전탐색/lv.2)

by 청량리 물냉면 2023. 5. 24.
반응형
문제

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

 

프로그래머스

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

programmers.co.kr

 

 

🐍파이썬
from itertools import product
def solution(word):
    answer = []
    for i in range(1, 6):
        for j in product(["A", "E", "I", "O", "U"], repeat = i):
            answer.append("".join(j))
    answer.sort()
    return answer.index(word)+1

중복순열을 이용해 가능한 모든 경우의 수를 생성해 arr에 넣고,

arr을 정렬한 뒤 인덱스를 출력한다.

 

 

다른 풀이 방법

등비수열의 합을 이용한 풀이

def solution(word):
    answer = 0
    for i, n in enumerate(word):
        answer += (5 ** (5 - i) - 1) / (5 - 1) * "AEIOU".index(n) + 1
    return answer

등비수열의 합

A = 5^0가지

A□ = 5^1가지

A = 5^2 가지

A = 5^3 가지

A = 5^4 가지

E = 5^0 + 5^1 + 5^2 + 5^3 + 5^4 + 1 = (5^5 -1) / 4 (등비수열의 합 공식) + 1

...

반응형