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
코딩테스트 연습 - 조이스틱
조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다
programmers.co.kr
'알고리즘 > 프로그래머스(Python)' 카테고리의 다른 글
그리디 - 구명보트 / 파이썬 (0) | 2020.11.09 |
---|---|
그래프 - 가장 먼 노드 / 파이썬 (0) | 2020.11.08 |
힙 - 이중우선순위큐 / 파이썬 (0) | 2020.11.06 |
힙 - 디스크 컨트롤러 / 파이썬 (0) | 2020.11.05 |
힙 - 더 맵게 / 파이썬 (0) | 2020.11.05 |