728x90
반응형
출처: https://school.programmers.co.kr/learn/courses/30/lessons/42860
풀이:
첫 시도,,
def solution(name):
str = ["A" for i in range(len(name))]
target = [i for i in name]
count = 0
for basic, target in zip(str, target):
if ord(target) - ord(basic) > 13:
count += 91 - ord(target)
elif ord(target) - ord(basic) < 13:
count += ord(target) - ord(basic)
else:count += ord(target) - ord(basic)
return count + len(name) - name.count("A") - 1
22.2 / 100.0
다음 문자가 A 일때가 문제인거 같다
커서를 왼쪽으로이동 오른쪽으로 이동이 문제다
def solution(name):
mini = len(name) -1
res = 0
for i, char in enumerate(name):
res += min(ord(char) - ord('A'), ord('Z') - ord(char) + 1)
next = i + 1
while next < len(name) and name[next] == 'A':
next += 1
mini = min([mini, 2 *i + len(name) - next, i + 2 * (len(name) -next)])
res += mini
return res
min 안에 3가지 경우
1. 일반적인 경우 >> 그냥 오른쪽으로 쭉 감
2.
3.
각 길이중 최솟값은 res 에 더해줌
반응형
댓글