반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/84512
🐍파이썬
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
...
반응형
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[프로그래머스|파이썬] 2 x n 타일링 (연습문제/lv.2) (0) | 2023.05.26 |
---|---|
[프로그래머스|파이썬] 2개 이하로 다른 비트(월간 코드 챌린지 시즌2/lv.2) (0) | 2023.05.25 |
[프로그래머스|파이썬] [1차] 프렌즈4블록 (2018 KAKAO BLIND RECRUITMENT/lv.2) (0) | 2023.05.24 |
[프로그래머스|파이썬] 방문 길이 (Summer/Winter Coding(~2018)/lv.2) (0) | 2023.05.23 |
[프로그래머스|파이썬] 바탕화면 정리 (연습문제/lv.1) (0) | 2023.05.23 |
[프로그래머스|파이썬] [3차] n진수 게임 (2018 KAKAO BLIND RECRUITMENT/lv.2) (0) | 2023.05.22 |