
[백준] 1485 - 정사각형 Python
·
알고리즘/기초 기하학
네 점이 주어졌을 때, 네 점을 이용해 정사각형을 만들 수 있는지 없는지 판별하는 문제다. ccw 를 이용해 한 점을 잡아 각도가 작은 순으로 정렬 후 정사각형임을 판별할 수도 있지만, 판별하는 대상이 정사각형이기 때문에, 단순정렬만 이용해도 풀이가 가능하다. 2차원 평면 상에서 정사각형은 다음과 같이 나타낼 수 있다. 정사각형을 판별하기 위해 두 가지 조건을 만족하는지 확인한다. - 네 변의 길이가 같다 - 두 대각선의 길이가 같다. 따라서 한 점을 기준으로 나머지 점들의 좌표를 시계 또는 반시계 방향으로 정렬한 뒤, 네 변의 길이와 두 대각선의 길이가 같은지 판별한다. 입력으로 받은 점들을 배열에 넣고, 점들을 x 좌표, y 좌표 순으로 정렬하고, 맨 처음 점을 기준점 p 로 놓는다. x 좌표가 가장..