평행사변형 [1064]

2021. 2. 19. 11:11알고리즘/파이썬

반응형

평행사변형 [1064]

백준 - https://www.acmicpc.net/problem/1064

 

1064번: 평행사변형

평행사변형은 평행한 두 변을 가진 사각형이다. 세 개의 서로 다른 점이 주어진다. A(xA,yA), B(xB,yB), C(xC,yC) 이때, 적절히 점 D를 찾아서 네 점으로 평행사변형을 만들면 된다. 이때, D가 여러 개 나

www.acmicpc.net

문제

  • 평행사변형은 평행한 두 변을 가진 사각형이다.

  • 세 개의 서로 다른 점이 주어진다. A(xA,yA), B(xB,yB), C(xC,yC)

  • 이때, 적절히 점 D를 찾아서 네 점으로 평행사변형을 만들면 된다.

  • 이때, D가 여러 개 나올 수도 있다.

  • 만들어진 모든 사각형 중 가장 큰 둘레 길이와 가장 작은 둘레 길이의 차이를 출력하는 프로그램을 작성하시오.

  • 만약 만들 수 있는 평행사변형이 없다면 -1을 출력한다.

 


입력

  • 첫째 줄에 xA yA xB yB xC yC가 주어진다. 모두 절댓값이 5000보다 작거나 같은 정수이다.

출력

  • 첫째 줄에 문제의 정답을 출력한다. 절대/상대 오차는 10-9까지 허용한다.

     


풀이과정

  • 둘레의 긴값은 세점중 가장 긴거리 두개 x2 , 짧은 값은 세점중 가장 짧은 거리 두개 x2

  • complex의 abs 를 구하면 거리가 나타난다.

  • 3점의 좌표를 complex 형태로 나타내준다.

  • 평행사변형이 안될 조건을 생각해야한다.

    • 세점이 같은 좌표인 경우

    • 두점이 같은 좌표인 경우 x2

    • 세점이 한 직선에 있는경우 (기울기가 같은경우 (기울기를 구하기위한 slope))

      • 기울기를 구하면서 zero division을 고려한다.

         

 


느낀점

  • 이문제는 내적을 이용해 풀면 쉽게풀게되는데 난 내적을 모르니 이렇게 풀었다.

  • 그래서 어렵게... 오래... 풀었다.

  • 기하학적인 문제(?) 라 어려웠다.

반응형

'알고리즘 > 파이썬' 카테고리의 다른 글

슈퍼 마리오 [2851]  (0) 2021.02.24
막대기 [1094]  (0) 2021.02.19
킹 [1063]  (0) 2021.02.19
전국 대학생 프로그래밍 대회 동아리 연합 [5046]  (0) 2021.02.10
체스판 다시 칠하기 [1018]  (0) 2021.02.10