[Python] 프로그래머스 - 평행

SeungHyun·2024년 4월 25일

coding test

목록 보기
14/16

0. 기본 정보

0-A. 개요

python/프로그래머스 - 평행 문제에 대한 분석임.

0-B. 문제 정보

프로그래머스 - 평행


1. 정답 코드

def grad(p1, p2):
    return (p2[1] - p1[1])/(p2[0] - p1[0])

def solution(dots):
    p1, p2, p3, p4 = dots

    cond1 = grad(p1, p2) == grad(p3, p4)
    cond2 = grad(p1, p3) == grad(p2, p4)
    cond3 = grad(p1, p4) == grad(p2, p3)

    if cond1 or cond2 or cond3: return 1
    
    return 0


2. 핵심풀이

  • 처음에는 각 점을 이은 직선 6개의 기울기를 하나의 list에 삽입한 다음 중복값이 있다면 1을 없다면 0을 출력하는 함수를 만들었다.
    결과는 몇몇 문제 실패

    이유는: https://school.programmers.co.kr/questions/75580

  • 요약하면 해당 문제는 서로 다른 점을 이은 직선 2개에 대해서 평행한지에 대해 묻는 문제.
    즉, 아래 세가지 직선 중 평행한 경우가 있는지에 대한 문제.

    • AB직선과 CD직선
    • AC직선과 BD직선
    • AD직선과 BC직선
  • 문제 핵심만 안다면 해결은 어렵지 않다.

profile
어디로 가야하오

0개의 댓글