https://www.acmicpc.net/problem/18238
2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다.
작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해냈다!
규칙은 이러하다.
시간이 너무 오래 걸리면 지루해할 ZOAC의 참가자들을 위해 성우는 해당 문자열을 앞에서부터 차례대로 최대한 빠르게 출력하려고 한다.
바쁜 성우를 위하여 해당 문자열을 출력하는 데 걸리는 시간의 최솟값을 구해보자.
첫 번째 줄에 알파벳 대문자로 구성된 문자열이 주어진다. 문자열의 길이는 최대 100자이다. 빈 문자열은 주어지지 않는다.
입력으로 주어진 문자열을 출력하는 데에 걸리는 시간의 최솟값을 출력한다.
왼쪽으로 도는 경우와 오른쪽으로 도는 경우의 시간을 각각 구해서 둘 중에 더 적은 시간을 적용한다.
word = input()
start = 'A'
sec = 0
for i in word: # i에 word의 한 글자씩 넣어줌
left = ord(start)-ord(i) # 현재 위치에서 다음 위치까지 빼줌
right = ord(i)-ord(start) # 다음 위치에서 현재 위치까지 빼줌
# 빼준 거리가 음수일 때 각각 26(초)을 더해줌
if (left < 0):
left += 26
elif (right < 0):
right += 26
sec += min(left, right) # 둘 중에 더 짧은 시간을 변수 sec에 더해줌
start = i # start는 다시 i로 바뀜
print(sec) # 최단 시간 출력
요즘 정신이 없어서 자세한 설명은 주석으로 대체...ㅠ