티스토리 뷰

문제

2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다.

작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해냈다!

규칙은 이러하다.

  • 그림과 같은 원판에 문자들이 순서대로 적혀있다. 처음 순간에 화살표는 'A'를 가리키고 있다.
  • 원판은 왼쪽 또는 오른쪽으로 돌릴 수 있다. 원판을 한 칸 돌리는 데에는 1의 시간이 소요된다.
  • 화살표가 가리키고 있는 문자를 출력할 수 있다. 문자를 출력하는 데에 걸리는 시간은 없다.

시간이 너무 오래 걸리면 지루해할 ZOAC의 참가자들을 위해 성우는 해당 문자열을 앞에서부터 차례대로 최대한 빠르게 출력하려고 한다.

바쁜 성우를 위하여 해당 문자열을 출력하는 데 걸리는 시간의 최솟값을 구해보자.

입력

첫 번째 줄에 알파벳 대문자로 구성된 문자열이 주어진다. 문자열의 길이는 최대 100자이다. 빈 문자열은 주어지지 않는다.

출력

입력으로 주어진 문자열을 출력하는 데에 걸리는 시간의 최솟값을 출력한다.

예제 입력 1 

ZOAC

예제 출력 1 

26

예제 입력 2 

LBOLVUEEPMOIENMG

예제 출력 2 

100

 

문제풀이

개념

 

- ord() 유니코드 정수를 반환하는 함수

- ex) ord('a') -> 정수 97반환 ord('A') 정수 65반환

 

문제접근

 

- 알파벳은 26개

- 입력받은 문자를 숫자로 바꾸기

 

문제풀이 방법

 

1) text에 리스트형태로 입력받기

2) 초기값 설정

3) 원판을 오른쪽으로 돌려야 하는 경우 tmp에서 i 아스키코드 값 빼기

    원판을 왼쪽으로 돌려야 하는 경우 i에서 i에서 tmp 빼주기

4) left와 right가 0보다 작으면 +26 더해주기

    왜냐하면 right가 -23이라면 +26해주면 3이기 때문에 3칸 돌리면 된다.

5) result는 걸리는 시간이므로 누적해서 더해준다

6) 문자열의 걸리는 시간의 최소값 result를 출력한다.