문제


풀이
def solution(name):
d = {chr(64+i): i for i in range(1,27)}
nameSplit = [x for x in name]
toMove = []
for x in nameSplit:
toMove.append(min(d[x]-1,26-d[x]+1))
cnt = 0
i = 0
while True:
cnt += toMove[i]
toMove[i] = 0
if sum(toMove) == 0:
break
l,r = 1,1
while toMove[i-l] == 0:
l += 1
while toMove[i+r] == 0:
r += 1
if l<r:
cnt += l
i -= l
else:
cnt += r
i += r
answer = cnt
return answer
Reference
https://commissies.ch.tudelft.nl/chipcie/archief/2010/nwerc/nwerc2010.pdf