Algorithm/백준

[백준 알고리즘] 18238번: ZOAC 2 (Python)

에릭 Kim 2023. 7. 5. 16:14
반응형

https://www.acmicpc.net/problem/18238

 

18238번: ZOAC 2

2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해

www.acmicpc.net

 

소스코드

 

 

풀이

★ 기준점으로부터 해당 알파벳까지 어느 방향으로 이동하는 게 더 짧은지 비교하기 위해선 ord() 함수를 사용하여 문자열을 아스키 코드로 바꾼 후 연산을 진행해야 합니다.

 

★ 기준점으로부터 왼쪽으로 도는 변수, 오른쪽으로 도는 변수를 선언합니다. 그 중 음수 값이 나오는 변수에 26을 추가해줍니다. 26을 추가하는 이유는 알파벳 전체를 한바퀴 돌기 위해서는 26번 이동해야 하기 때문입니다. 

 

★ 위치를 이동했다면, 현재 위치를 시작점으로 설정해줘야 합니다. 

 

★ 그 후 결과값을 출력하는 변수인 time에 두 변수 중 더 작은 값을 추가해줍니다. (최솟값을 구하기 위해서) 

 

ex)

x = Z

 

t = 65 - 90 = -25

k = 90 - 65 = 25

 

=> t = 1, k = 25

 

min(t,k) => t

time += 1

 

x  = O

 

t = 90 - 79 = 11

k = 79 - 90 = -11

 

=> t = 11, k = 15

 

min(t,k) => t

time += 11

 

... 

반응형