[파이썬] 42860번. 조이스틱 풀이
·
알고리즘과 코딩 테스트/프로그래머스 코딩 테스트 고득점 Kit
[처음 생각했던 풀이] 1. 현재 커서 위치에서 그 글자까지 최소 몇번을 움직여야 하는가 계산하고, 2. 그 글자 (A)에서 알파벳을 몇 번 바꿔야 최소인가 계산하는 것으로 생각했다... [문제 풀이] 2. 알파벳이 A가 아닐 때, 변경하는 횟수를 구하는 과정은 쉽다. 아스키 코드를 생각하면 된다. ※ 'A'의 아스키 코드 = 65, 'Z'의 아스키 코드 = 90 1. 이 단계가 중요하다. 알파벳을 변경하려고, 매번 커서를 어느쪽으로 움직여야 할 지 판단하기는 힘들다! 이렇게 생각해보자. 1-1) 커서를 좌우로 움직이는 횟수는, 아무리 최악이어도 문자열을 한 번 순회하면 충분하다. -> N - 1 (최악의 경우) 또는 1-2) 한 쪽 방향(왼쪽/오른쪽)으로 먼저 이동한 다음, 그 반대 방향으로 이동하는 ..