본문 바로가기
💻 하나씩 차곡차곡/프로그래머스 (Python)

[프로그래머스/python/Lv1] 키패드 누르기

by 뚜루리 2023. 12. 27.
728x90
320x100
def solution(numbers, hand):
    # 키패드 위치
    keyPad = { "1":(0,0), "2":(0,1), "3":(0,2)
              ,"4":(1,0), "5":(1,1), "6":(1,2)
              ,"7":(2,0), "8":(2,1), "9":(2,2)
              ,"*":(3,0), "0":(3,1), "#":(3,2)    
    }
    # 각 손의 현재 위치
    left = keyPad["*"]
    right = keyPad["#"]
    
    answer = ''
    
    for i in numbers:
        if i in [1, 4, 7]:
            answer += "L"
            left = keyPad[str(i)]
        elif i in [3, 6, 9]:
            answer += "R"
            right = keyPad[str(i)]
        elif i in [2, 5, 8, 0]:
            leftDis = abs(left[0] - keyPad[str(i)][0]) + abs(left[1] - keyPad[str(i)][1])
            rightDis = abs(right[0] - keyPad[str(i)][0]) + abs(right[1] - keyPad[str(i)][1])
            
            if rightDis > leftDis:
                answer += "L"
                left = keyPad[str(i)]
            elif rightDis < leftDis:
                answer += "R"
                right = keyPad[str(i)]
            else :
                if hand =="left":
                    answer += "L"
                    left = keyPad[str(i)]
                else:
                    answer += "R"
                    right = keyPad[str(i)]
                          
    return answer

눌러야 하는 키패드가 2, 5, 8, 0일 때 현재 손 위치에서 더 가까운 손으로 눌러야 해서 그 부분을 계산하는게 어려웠다.

728x90
320x100

뚜루리님의
글이 좋았다면 응원을 보내주세요!