def solution(name):
lst = [min(ord(n)-ord('A'), ord('Z')-ord(n)+1) for n in name]
idx, answer = 0, 0
while True:
answer += lst[idx]
lst[idx] = 0
if sum(lst) == 0: break
left, right = 1, 1
while lst[idx-left] == 0:
left += 1
while lst[idx+right] == 0:
right += 1
if left < right:
answer += left
idx -= left
else:
answer += right
idx += right
return answer
programmers.co.kr/learn/courses/30/lessons/42860
'알고리즘 > 프로그래머스(Python)' 카테고리의 다른 글
그리디 - 구명보트 / 파이썬 (0) | 2020.11.09 |
---|---|
그래프 - 가장 먼 노드 / 파이썬 (0) | 2020.11.08 |
힙 - 이중우선순위큐 / 파이썬 (0) | 2020.11.06 |
힙 - 디스크 컨트롤러 / 파이썬 (0) | 2020.11.05 |
힙 - 더 맵게 / 파이썬 (0) | 2020.11.05 |