@ENFJ 2024. 9. 1. 16:53
name	return
"JEROEN"	56
"JAN"	23



def solution(name):

	# μ‘°μ΄μŠ€ν‹± μ‘°μž‘ 횟수
	answer = 0
	
	# κΈ°λ³Έ μ΅œμ†Œ μ’Œμš°μ΄λ™ 횟수 : 길이 - 1
	min_move = len(name) - 1
	
	for i, char in enumerate(name):              # enumerate() ν•¨μˆ˜: enumerate()λŠ” λ°˜λ³΅ν•  λ•Œ μΈλ±μŠ€μ™€ 값을 λ™μ‹œμ— μ œκ³΅ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. enumerate(반볡_λŒ€μƒ)은 (인덱슀, κ°’) ν˜•νƒœμ˜ νŠœν”Œμ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.
		
		
		#μ•žμœΌλ‘œ μ΄λ™ν•˜λŠ” 경우
		forward_move = ord(char) - ord('A')
		#λ’€λ‘œ μ΄λ™ν•˜λŠ” 경우
		backward_move = ord('Z') - ord(char)+1
		
		# ν•΄λ‹Ή μ•ŒνŒŒλ²³ λ³€κ²½ μ΅œμ†Ÿκ°’ μΆ”κ°€
		answer += min( forward_move, backward_move )
		
        # ν•΄λ‹Ή μ•ŒνŒŒλ²³ λ‹€μŒλΆ€ν„° μ—°μ†λœ A λ¬Έμžμ—΄ μ°ΎκΈ°
        while next < len(name) and name[next] == 'A':
            next += 1
            
        # κΈ°μ‘΄, μ—°μ†λœ A의 μ™Όμͺ½μ‹œμž‘ 방식, μ—°μ†λœ A의 였λ₯Έμͺ½μ‹œμž‘ 방식 비ꡐ 및 κ°±μ‹ 
        min_move = min([min_move, 2 *i + len(name) - next, i + 2 * (len(name) -next)])
        
    # μ•ŒνŒŒλ²³ λ³€κ²½(μƒν•˜μ΄λ™) νšŸμˆ˜μ— μ’Œμš°μ΄λ™ 횟수 μΆ”κ°€
    answer += min_move
    return answer