아이디어
5개의 모음을 5개의 자리에 중복을 허용하여 놓았을 때
제시되는 단어가 몇 번째로 오는지를 반환하는 문제이다.
그렇다. 중복순열이다.
수학에 젬병이라 수학 문제를 그리 좋아하지는 않는데 내가 풀 수 있다면 이야기가 달라지지. 😁
풀이
def solution(word):
answer = 0
data = ["A", "E", "I", "O", "U"]
for idx in range(len(word)):
answer += (data.index(word[idx])) * (5 ** (5 - idx) - 1) // 4 + 1
return answer
귀찮아서 배열을 사용했는데 더 귀찮았으면 문자열을 사용했을 거고...
데이터의 크기가 커지면 당연히 딕셔너리를 쓰는 것이 빠르니 알아두자.
'학습 노트 > 알고리즘 (Python)' 카테고리의 다른 글
99클럽 - 신고 결과 받기, 개인정보 수집 유효기간 (0) | 2024.04.16 |
---|---|
99클럽 - JadenCase 문자열 만들기 (0) | 2024.04.15 |
99클럽 - 기능개발, 대충 만든 자판 (0) | 2024.04.12 |
99클럽 - 이진 변환 반복하기 (0) | 2024.04.11 |
Stack #2 (0) | 2022.06.23 |