less than 1 minute read

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120875

풀이

def solution(dots):
    # dots의 길이가 4다
    # 가능한 집합은 아래의 경우의 수가 전부다.
    cases = (((0, 1), (2, 3)), ((0, 2), (1, 3)), ((0, 3), (1, 2)))
    
    # 모든 경우의 수에 대해서 검사한다.
    # 두집합을 a (a1,a2), b (b1,b2) 라 하자
    for (a1, a2), (b1, b2) in cases:
        ax1, ay1 = dots[a1]
        ax2, ay2 = dots[a2]
        bx1, by1 = dots[b1]
        bx2, by2 = dots[b2]
        
        # 기울기가 같으면 바로 1을 반환한다.
        # x축 또는 y축과 평행한 경우는 없으므로 상관하지 않는다.
        if (ay1-ay2)/(ax1-ax2) == (by1-by2)/(bx1-bx2):
            return 1
    return 0

Leave a comment