문제

풀이
# 18238
# 문자열 입력
N = input()
# 시간(거리) 계산
# 알파벳에 수를 부여하기 위해 ord() 함수 사용
# 총 알파벳 글자수 26개 => 최대 거리는 13임
# 거리끼리 뺀 후, 13보다 크면, 26에서 그 차이를 뺀 값이 최소 거리와 같음
# A와N =>13
# A와O =>14 = 12
# A와P =>15 = 11
mn_sum = 0
# A부터 시작점과의 거리
if abs(ord(N[0]) - ord("A")) <= 13:
mn = abs(ord(N[0]) - ord("A"))
else:
mn = 26 - abs(ord(N[0]) - ord("A"))
mn_sum += mn
# 이후 거리 계산
for i in range(len(N) - 1): # 가까운 거리를 계산하기 위해, 26을 더한 수도 계산하였다.
if abs(ord(N[i]) - ord(N[i + 1])) <= 13:
mn = abs(ord(N[i]) - ord(N[i + 1]))
else:
mn = 26 - abs(ord(N[i]) - ord(N[i + 1]))
mn_sum += mn
# 출력
print(mn_sum)
느낀 점
머리로 생각하려니까 너무 어려운 것 같다. 수학 문제 풀 듯이 메모할 필요가 있는 것 같다. 노트북 타이핑으로는 자유로움에서 한계가 있는 것 같으니 노트를 준비해보자!
No Responses