기본기 다지기/코테 오답노트

[프로그래머스] 평행 (파이썬)

syveany 2025. 2. 24. 12:36

[문제]

점 4개 중에 임의로 2개씩 선택했을 때, 서로 평행한 경우가 있는지 알아보는 문제였다.

정답률 53%의 문제였다.

[유의한 점]

(y2 - y1) / (x2 - x1) == (y4 - y3) / (x4 - x3) 형식으로 나누기를 사용하면

x1 == x2 일 때 0으로 나누면서 오류가 날까봐 곱셈 형태로 바꿔줬다.

 

[코드]

def solution(dots):
    answer = 0
    # [[x1, y1],[x2, y2],[x3, y3],[x4, y4]] = dots
    x1 = dots[0][0]
    y1 = dots[1][0]
    x2 = dots[2][0]
    y2 = dots[3][0]
    x3 = dots[0][1]
    y3 = dots[1][1]
    x4 = dots[2][1]
    y4 = dots[3][1]
    
    # 평행인 선이 있는지 확인
    if (y2-y1) * (x4 - x3) == (y4 - y3) * (x2- x1) or (y3-y1) * (x4- x2) == (y4 - y2) * (x3 - x1) or (y4-y1) * (x2- x3) == (y2 - y3) * (x4 - x1):
        return 1
    else:
        return 0

 

[개선점]

[[x1, y1],[x2, y2],[x3, y3],[x4, y4]] = dots 로 놓고 풀었다면 더 깔끔했을 듯 하다.

 

[느낀점]

차근차근 풀었더니 맞았다.

차분하게 풀자