BOJ - 1485

주의·2024년 1월 25일
0

boj

목록 보기
110/214

백준 문제 링크
정사각형

❓접근법

  1. 정사각형의 조건은 다음과 같다.
  • 네 변의 길이가 같아야한다.
  • 대각선의 길이가 서로 같다.
  1. 위 조건을 만족시키면 1을, 안되면 0을 출력한다.

👌🏻코드

T = int(input())

for _ in range(T):
    time = []
    for _ in range(4):
        x = list(map(int, input().split()))
        time.append(x)
        
    time = sorted(time, key = lambda x: (x[0],x[1]))

    a = abs(time[0][0] - time[1][0]) + abs(time[0][1] - time[1][1])
    
    b = abs(time[0][0] - time[2][0]) + abs(time[0][1] - time[2][1])
    
    c = abs(time[1][0] - time[3][0]) + abs(time[1][1] - time[3][1])
    
    d = abs(time[2][0] - time[3][0]) + abs(time[2][1] - time[3][1])
    
    diagonal_a = ((time[1][0] - time[2][0]) ** 2 + (time[1][1] - time[2][1]) ** 2) ** (1/2)
    diagonal_b = ((time[0][0] - time[3][0]) ** 2 + (time[0][1] - time[3][1]) ** 2) ** (1/2)
    
    
    
    if a == b == c == d and diagonal_a == diagonal_b:
        print(1)
    else:
        print(0)

0개의 댓글