Binary Journey

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

프로그래머스/level 2

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

binaryJournalist 2022. 3. 10. 20:04
반응형

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

def solution(name):
    answer = 0
    length = len(name)
    index = 0
    move = length - 1
    
    for i, n in enumerate(name):
        answer += min(ord(n) - ord('A'), ord('Z') - ord(n) + 1);
        index = i + 1
        while index < length and ord(name[index]) == ord('A'):
            index += 1
        move = min(move, i * 2 + length - index)
        move = min(move, (length - index) * 2 + i)
    return answer + move

참고: https://velog.io/@jeeseob5761/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%A1%B0%EC%9D%B4%EC%8A%A4%ED%8B%B1

 

 

 

def solution(name):
    if set(name) == {'A'}:
        return 0
    answer = float('inf')
    for i in range(len(name) // 2):
        left_moved = name[-i:]+name[:-i]
        print(left_moved)
        right_moved = name[i:]+name[:i]
        print(right_moved)
        print([left_moved, right_moved[0]+right_moved[:0:-1]])
        for n in [left_moved, right_moved[0]+right_moved[:0:-1]]:
            while n and n[-1] == 'A':
                n = n[:-1]
            row_move = i + len(n)-1
            col_move = 0
            for c in map(ord, n):
                col_move += min(c - 65, 91 - c)

            answer = min(answer, row_move + col_move)

    return answer

참고: https://programmers.co.kr/questions/26014

반응형

'프로그래머스 > level 2' 카테고리의 다른 글

[프로그래머스] 위장  (0) 2022.04.20
[프로그래머스] 더 맵게  (0) 2022.04.20
[프로그래머스] 가장 큰 수  (0) 2022.03.10
[프로그래머스] 교점에 별 만들기  (0) 2022.03.03
[프로그래머스] 캐시  (0) 2022.03.03