평행사변형
📌 문제

예제 입력
0 0 0 1 1 0예제 출력
0.8284271247461898📌 풀이
Logic
- 세 개의 서로 다른 점 좌표 입력 받기
- 평행사변형 여부 확인
- 세 점이 한 직선 위에 있으면 불가능 <-- '-1' 출력
- 세 가지 평행선 및 둘레 구하기
- 최대 둘레 차이 출력
# 변수명
Xa, Ya, Xb, Yb, Xc, Yc : 주어진 세 점의 좌표
dist : 빗변 길이 함수
circum : 가능한 평행사변형의 둘레

Python
import sys
import math
Xa, Ya, Xb, Yb, Xc, Yc = map(int, sys.stdin.readline().split())
if ((Xa * (Yb - Yc) + Xb * (Yc - Ya) + Xc * (Ya - Yb)) == 0):
print(-1)
sys.exit()
def dist(x1, y1, x2, y2):
return math.hypot(x1 - x2, y1 - y2)
a = dist(Xa, Ya, Xb, Yb)
b = dist(Xb, Yb, Xc, Yc)
c = dist(Xc, Yc, Xa, Ya)
circum = [2 * (a + b), 2 * (b + c), 2 * (c + a)]
circum.sort()
print((circum[-1] - circum[0]))
✏️ 새로운 내용
hypot()
두 선분이 주어졌을 때 빗변을 구함
dis = math.hypot(1, 1) # 1.414
📚 회고
💡 hypot
- 처음에는 빗변을 구하기 위해 네 개의 점 좌표를 이용하고, 직접 제곱·루트를 계산하는 복잡한 방식을 사용했다.
- hypot처럼 간단히 처리할 수 있는 함수도 있다는 것을 알았다.
- 비교적 지엽적인 함수들은 “있다” 정도만 알고 넘어가도 충분하다고 생각한다.
'BOJ > Silver' 카테고리의 다른 글
| [BOJ] #16173 점프왕 쩰리 (Small) (0) | 2026.04.13 |
|---|---|
| [BOJ] #1002 터렛 (0) | 2026.04.13 |
| [BOJ] #9012 괄호 (0) | 2026.04.13 |
| [BOJ] #18110 solved.ac (0) | 2026.04.13 |
| [BOJ] #11441 합 구하기 (0) | 2026.04.13 |