def solution(name):
    up_down_count = 0

    for i in range(len(name)):
        if name[i] != "A":
            count = ord(name[i]) - 65
            if count > 13:
                count = 26 - count

            up_down_count += count

    left_right_count = 20

    # 오른쪽으로 가다가 왼쪽으로 꺾기(꺾는 시점이 0인 경우 왼쪽으로만 가기)
    for turn_left in range(len(name)):
        last_index = len(name) - 1
        for i in range(len(name) - 1, turn_left, -1):
            if name[i] != "A":
                last_index = i

        count = turn_left * 2 + len(name) - last_index
        if count < left_right_count:
            left_right_count = count

    # 왼쪽으로 가다가 오른쪽으로 꺾기(꺾는 시점이 0인 경우 오른쪽으로만 가기)
    for turn_right in range(len(name)):
        last_index = 0
        for i in range(len(name) - turn_right):
            if name[i] != "A":
                last_index = i

        count = turn_right * 2 + last_index
        if count < left_right_count:
            left_right_count = count

    return up_down_count + left_right_count


# 정확성  테스트
# 테스트 1 〉	통과 (0.01ms, 10.2MB)
# 테스트 2 〉	통과 (0.01ms, 10MB)
# 테스트 3 〉	통과 (0.01ms, 10.1MB)
# 테스트 4 〉	통과 (0.02ms, 10.1MB)
# 테스트 5 〉	통과 (0.02ms, 10.1MB)
# 테스트 6 〉	통과 (0.01ms, 10.2MB)
# 테스트 7 〉	통과 (0.02ms, 10.3MB)
# 테스트 8 〉	통과 (0.01ms, 10.3MB)
# 테스트 9 〉	통과 (0.01ms, 10MB)
# 테스트 10 〉	통과 (0.02ms, 10.1MB)
# 테스트 11 〉	통과 (0.02ms, 10.2MB)
# 채점 결과
# 정확성: 100.0
# 합계: 100.0 / 100.0

assert (solution("JEROEN") == 56)
assert (solution("JAN") == 23)
assert (solution("ZZAAAZZ") == 8)  # 테스트 케이스 11
