https://programmers.co.kr/learn/courses/30/lessons/42860
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def solution(name):
    answer = 0
    n = len(name)
    def alphabet_to_num(char):
        num_char = [i for i in range(14)] + [j for j in range(12, 0, -1)]
        return num_char[ord(char) - ord('A')]
    for ch in name:
        answer += alphabet_to_num(ch)
    move = n - 1
    for idx in range(n):
        next_idx = idx + 1
        while (next_idx < n) and (name[next_idx] == 'A'):
            next_idx += 1
        distance = min(idx, n - next_idx)
        move = min(move, idx + n - next_idx + distance)
    answer += move
    return answer
Complexity
$O(n)$
- $n$ = len(name)
PREVIOUSEtc