1 분 소요

문제 링크

내 풀이

def solution(numbers, hand):
    result = ''
    L_used = ['*']
    R_used = ['#']
    pad = {0: (3,1), 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), '#': (3,2)}
    
    for number in numbers:
        if number in [1,4,7]:
            result += 'L'
            L_used.append(number)
        elif number in [3,6,9]:
            result += 'R'
            R_used.append(number)
        else:
            a, b = pad[number]
            c, d = pad[L_used[-1]]
            e, f = pad[R_used[-1]]
            L_d = abs(a-c)+ abs(b-d)
            R_d = abs(a-e)+ abs(b-f)
            if L_d > R_d:
                result += 'R'
                R_used.append(number)
            elif L_d < R_d:
                result += 'L'
                L_used.append(number)
            else:
                if hand == 'right':
                    result += 'R'
                    R_used.append(number)
                else:
                    result += 'L'
                    L_used.append(number)
    return result                   

맨해튼 거리방식/ 유클리드 거리 방식

맨해튼 거리 방식 / 유클리드 거리 방식   맨해튼 거리와 유클리드 거리는 두 점 사이의 거리를 측정하는 두 가지 다른 방법입니다. 이 두 거리 측정 방법은 대개 좌표 평면이나 다차원 공간에서 사용됩니다. 각각의 거리 측정 방법은 다음과 같이 정의됩니다.   맨해튼 거리 (Manhattan Distance): 맨해튼 거리는 두 점 사이의 거리를 가로 방향과 세로 방향으로 이동하는데필요한 “도로” 또는 “경로”의 길이로 정의됩니다.맨해튼 거리는 대각선 이동을 허용하지 않으며 오로지 수평과 수직 이동만 고려합니다.두 점 (x1, y1)과 (x2, y2) 간의 맨해튼 거리는 다음과 같이 계산됩니다:맨해튼 거리 = |x1 - x2| + |y1 - y2|

유클리드 거리 (Euclidean Distance): 유클리드 거리는 두 점 사이의 직선거리로 정의됩니다.이 거리는 좌표 평면 상에서 두 점을 연결하는 가장 짧은 직선거리입니다.두 점 (x1, y1)과 (x2, y2) 간의 유클리드 거리는 다음과 같이 계산됩니다:유클리드 거리 = √((x1 - x2)² + (y1 - y2)²)

맨해튼 거리는 주로 도시 블록 상에서의 이동 거리를 측정하는 데 사용되며,유클리드 거리는 공간 상에서의 물리적 거리를 측정하는 데 사용됩니다.두 거리 측정 방법은 서로 다른 응용 분야에서 유용하게 활용됩니다.

출처: https://1ets-just-do-it.tistory.com/88 [파이썬은 신이야🔥🔥🔥:티스토리]

댓글남기기