평행사변형 [1064]
2021. 2. 19. 11:11ㆍ알고리즘/파이썬
반응형
평행사변형 [1064]
백준 - https://www.acmicpc.net/problem/1064
문제
-
평행사변형은 평행한 두 변을 가진 사각형이다.
-
세 개의 서로 다른 점이 주어진다. 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 |