[BOJ 1485, Python] 정사각형
BOJ 1485, "정사각형" 문제의 Python 풀이
문제 링크
분류
기하학(geometry), 정렬(sorting)
설명
정사각형 판별을 해당 절차를 통해서 진행하면 된다.
- 4개의 점을 잇는 6개의 변의 길이를 전부 확인
- 정렬
- 앞 4개의 길이가 같은지 확인
- 뒷 2개가 정사각형의 대각선 길이로 적합한지 확인
- 전부 만족한 경우만 정사각형을 그릴 수 있는 것으로 처리
풀이 코드
# 정사각형
import sys
from math import sqrt, isclose
from itertools import combinations
input = sys.stdin.readline
def distance(coord_1: list, coord_2: list) -> int:
return sqrt(pow(coord_1[0] - coord_2[0], 2) + pow(coord_1[1] - coord_2[1], 2))
testcase = int(input())
output = []
for _ in range(testcase):
is_square = True
coord_info = []
for _ in range(4):
coord_info.append(list(map(int, input().split())))
edge_info = []
for edge_distance in combinations(coord_info, 2):
edge_info.append(distance(edge_distance[0], edge_distance[1]))
edge_info.sort()
for idx in range(1, 4):
if not isclose(edge_info[0], edge_info[idx]):
is_square = False
break
if is_square:
for idx in range(4, 6):
if not isclose(pow(edge_info[0], 2) * 2, pow(edge_info[idx], 2)):
is_square = False
break
if is_square:
output.append(1)
else:
output.append(0)
for result in output:
print(result)
댓글 작성
게시글에 대한 의견을 남겨 주세요.