프로그래머스/LEVEL 1

파이썬 키패드 누르기

GenieLove! 2021. 2. 20. 22:54
728x90
반응형
def solution(numbers, hand):
    keypad = [[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9],
              [-1, 0, -2]]
    answer = ''
    left = [3, 0]
    right = [3, 2]
    col = 0
    row = 0
    
    for number in numbers:
        if number == 0:
            col = 3
            row = 1
        else:
            col = (number - 1)//3
            row = (number - 1)%3
        
        if row == 0:#왼손만 누를 수 있는 곳
            answer += "L"
            left[0] = col
            left[1] = row
        elif row == 2:#오른손만 누를 수 있는 곳
            answer += "R"
            right[0] = col
            right[1] = row
        else:#양손 다 가능하면 거리계산
            left_l = abs(left[0] - col) + abs(left[1] - row)
            right_l = abs(right[0] - col) + abs(right[1] - row)
            if left_l < right_l or ((left_l == right_l) and hand == "left"):
                    answer += "L"
                    left[0] = col
                    left[1] = row
            elif right_l < left_l or ((left_l == right_l) and hand == "right"):
                    answer += "R"
                    right[0] = col
                    right[1] = row
        
    
    return answer
728x90
반응형

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

파이썬 최대공약수와 최소공배수  (0) 2021.02.20
자바 키패드 누르기  (0) 2021.02.20
파이썬 짝수와 홀수  (0) 2021.02.20
자바 짝수와 홀수  (0) 2021.02.20
파이썬 제일 작은 수 제거하기  (0) 2021.02.09