https://programmers.co.kr/learn/courses/30/lessons/84512?language=python3#
풀이
최대 길이는 5로 고정, 각 칸마다 5개의 알파벳이 들어올 수 있음
경우의 수?, 수학적 풀이가 필요함
5개의 칸의 "AAAE"의 경우 "A -> AA -> AAA -> AAAA"까지인 1+1+1+1=4에서
"AAAAA"~"AAAAU"의 5 뿐만 아니라 "AAAAU -> AAAE"와 같은 자릿값의 이동에 대한 갯수도 포함하여 수식을 생각해야한다.
* 즉 자리수가 바뀌는 규칙은 (x5)+1이다.
* 글로 표현하기가 어려워 "AAI"에 대한 예시그림
def solution(word):
answer = 0
# 반복, 자리수 건너띄기를 위한 값
dic={"A":0, "E":1, "I":2, "O":3, "U":4}
for i in range(len(word)):
for j in range(4, i, -1):
answer += 5 ** (j-i) * dic[word[i]]
answer += 1 + dic[word[i]]
return answer
'알고리즘' 카테고리의 다른 글
Programmers - 불량 사용장(Python) (0) | 2021.10.04 |
---|---|
Programmers - 복서 정렬하기(C++) (0) | 2021.10.04 |
BOJ 3190 - 뱀(C++) (0) | 2021.09.29 |
Programmers - 로또의 최고 순위와 최저 순위(C++) (0) | 2021.09.29 |
Programmers - 최소직사각형(C++) (0) | 2021.09.29 |
댓글