Programming/Python

[프로그래머스] 조이스틱

왕밤빵도라에몽 2025. 4. 8. 09:52
728x90

기본 아이디어

  • 오른쪽 갔다가 왼쪽으로 돌아가는 경우
  • 왼쪽으로 가다가 오른쪽으로 돌아가는 경우
def solution(name):
    move = len(name) - 1
    cnt = 0
    for chr in name:
        cnt += min((ord(chr) - ord('A')), 26 - (ord(chr) - ord('A')))

    for i in range(len(name)):
        next_idx = i + 1

        while next_idx < len(name) and name[next_idx] == 'A':
            next_idx += 1

        distance = min(
            move,
            i * 2 + (len(name) - next_idx),
            i + (len(name) - next_idx) * 2
        )
        move = min(move, distance)

    return cnt + move
  • 글자 구현은 엄청 쉬웠고
  • 위치 구현이 헷갈렸는데, 단순하게 생각하고 일단 구현하는게 중요한 것 같다 엣지케이스부터 자꾸 떠올리니 밑도끝도 없이 헷갈려했다
728x90