: 각각의 문자는 A, B, C...로 가는 방법 / A, Z, Y..로 뒤에서 가는 방법 둘 중 최소를 선택
: 다음 문자를 왼쪽 문자를 바꾸기/ 오른쪽 문자를 바꾸기
def solution(name):
# 상하조정으로 알파벳 바꾸기
cnt = [min(ord(n)-ord('A'), ord('Z')-ord(n)+1) for n in name]
i, ans = 0, 0
while True:
ans += cnt[i]
cnt[i] = 0
if sum(cnt) == 0:
return ans
# 좌우 이동방향 정하기
left, right = 1, 1
while cnt[i-left] == 0:
left += 1
while cnt[i+right] == 0:
right += 1
# 인덱스 조정
ans += left if left < right else right
i += -left if left < right else right
왜 cnt[i]에 0을 넣는지 완전히 이해가 안됐다..ㅠ
reference