less than 1 minute read

문제링크

다시 풀어보기 !

파이썬

def solution(numbers, hand):
    answer=''
    
    pad = {'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 = pad['*']
    right = pad['#']
    
    for i in numbers:
        if i in [1,4,7]:
            answer += 'L'
            left=pad[str(i)]
        elif i in [3,6,9] :
            answer += 'R'
            right=pad[str(i)]
            
        else :
            left_dis = abs(left[0] - pad[str(i)][0]) + abs(left[1] - pad[str(i)][1])
            right_dis = abs(right[0] - pad[str(i)][0]) + abs(right[1] - pad[str(i)][1])
            
            if left_dis < right_dis :
                answer += 'L'
                left = pad[str(i)]
            

            elif left_dis > right_dis :
                answer += 'R'
                right = pad[str(i)]

            else :
                if hand == 'right' :
                    answer += 'R'
                    right = pad[str(i)]
                else :
                    answer += 'L'
                    left = pad[str(i)]
    
    return answer

        

카테고리:

업데이트:

댓글남기기