[백준] 1485번 정사각형

거북이·2023년 1월 21일
0

백준[실버3]

목록 보기
41/92
post-thumbnail

💡문제접근

  • 정사각형의 성립 조건은 다음과 같이 두 가지가 존재한다.

①. 사각형의 네 변의 길이가 모두 같아야 한다.
②. 사각형의 두 대각선의 길이가 모두 같아야 한다.

💡코드(메모리 : 32808KB, 시간 : 52ms)

import math
import sys

T = int(input())

for _ in range(T):
    dot_li = []
    for _ in range(4):
        x, y = map(int, sys.stdin.readline().strip().split())
        dot_li.append([x, y])
    dot_li = sorted(dot_li, key = lambda x : (x[0], x[1]))
    side1 = math.sqrt(abs((dot_li[0][0] - dot_li[1][0])**2) + abs((dot_li[0][1] - dot_li[1][1])**2))
    side2 = math.sqrt(abs((dot_li[0][0] - dot_li[2][0])**2) + abs((dot_li[0][1] - dot_li[2][1])**2))
    side3 = math.sqrt(abs((dot_li[3][0] - dot_li[2][0])**2) + abs((dot_li[3][1] - dot_li[2][1])**2))
    side4 = math.sqrt(abs((dot_li[3][0] - dot_li[1][0])**2) + abs((dot_li[3][1] - dot_li[1][1])**2))

    diagonal1 = math.sqrt(abs((dot_li[1][0] - dot_li[2][0])**2) + abs((dot_li[1][1] - dot_li[2][1])**2))
    diagonal2 = math.sqrt(abs((dot_li[3][0] - dot_li[0][0])**2) + abs((dot_li[3][1] - dot_li[0][1])**2))
    if (side1 == side2 == side3 == side4) and diagonal1 == diagonal2:
        print(1)
    else:
        print(0)

💡소요시간 : 9m

0개의 댓글