반응형
https://www.acmicpc.net/problem/18238
소스코드
풀이
★ 기준점으로부터 해당 알파벳까지 어느 방향으로 이동하는 게 더 짧은지 비교하기 위해선 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
...
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준 알고리즘] 2644번: 촌수계산 (DFS, Python) (0) | 2023.07.10 |
---|---|
[백준 알고리즘] 2583번: 영역 구하기 (DFS, Python) (0) | 2023.07.05 |
[백준 알고리즘] 4963번: 섬의 개수 (DFS, Python) (0) | 2023.07.05 |
[백준 알고리즘] 27961번: 고양이는 많을수록 좋다 (Python) (0) | 2023.07.04 |
[백준 알고리즘] 4889번: 안정적인 문자열 (Python) (0) | 2023.07.03 |