[Programmers] 키패드 누르기

ironcat·2022년 3월 8일
0

알고리즘

목록 보기
4/17

알고리즘 문제풀이

문제 링크

def solution(numbers, hand):
    answer = ''
    x = [[1,0], [0,3], [1,3], [2,3], [0,2], [1,2], [2,2],
         [0,1], [1,1], [2,1], [0,0], [2,0]]
    prev_left = x[10]
    prev_right = x[11]
    for num in numbers:
        if num in [1, 4, 7]:
            answer += 'L'
            prev_left = x[num]
        elif num in [3, 6, 9]:
            answer += 'R'
            prev_right = x[num]
        else:
            left_len = abs(x[num][0] - prev_left[0]) + abs(x[num][1] - prev_left[1])
            right_len = abs(x[num][0] - prev_right[0]) + abs(x[num][1] - prev_right[1])
            if left_len < right_len:
                answer += 'L'
                prev_left = x[num]
            elif right_len < left_len:
                answer += 'R'
                prev_right = x[num]
            else:
                if hand == 'left':
                    answer += 'L'
                    prev_left = x[num]
                else:
                    answer += 'R'
                    prev_right = x[num]
            
    return answer
profile
공부하는 블로그

0개의 댓글