Notice
Recent Posts
Recent Comments
Link
반응형
공부혜옹
백준 1485 정사각형 본문
처음엔 정사각형이 되지 않을 조건을 먼저 생각해 보았는데 정사각형 특성상 정사각형일때만 해당되는 조건이 훨씬 명확하고 적은것같아 방향을 바꾸었다.
정사각형이 될 조건은
1. 모든 변의 길이가 같다
2. 대각선의 길이가 서로 같다
주어지는 네개의 점을 이용해 거리를 계산하면 6개의 길이가 나온다 이때 점을 미리 사각형의 형태로 나열한 후 거리를 구하는것 보다 일단 6개의 길이를 다 구한후 sort하면 나머지 두개의 길이가 대각선의 길이임을 알 수 있다. (정사각형은 변의 길이보다 대각선의 길이가 항상 길기 때문)
#include <iostream>
#include <algorithm>
#include <vector>
#include <math.h>
using namespace std;
int t;
int x1, x2, yy1, y2;
int func(int x1, int yy1, int x2, int y2){
return pow(x1 - x2, 2) + pow(yy1 - y2, 2);
}
int main(){
cin >> t;
while(t--){
vector<pair<int, int>> v;
vector<int> s;
for (int i = 0; i < 4; i++){
int a,b;
cin >> a >> b;
v.push_back(make_pair(a, b));
}
for(int i=0; i<4; i++){
for(int j=i+1; j<4; j++){
s.push_back(func(v[i].first,v[i].second, v[j].first, v[j].second));
}
}
sort(s.begin(),s.end());
if(s[0]==s[1] && s[1]==s[2] && s[2]==s[3] && s[4]==s[5]){
cout << "1"<<endl;
}else{
cout << "0"<<endl;
}
}
return 0;
}
반응형
'공부합시다 > Algorithm' 카테고리의 다른 글
백준 1517 버블소트 (0) | 2021.09.28 |
---|---|
백준 5904 moo 게임 (0) | 2021.09.28 |
백준 1004 어린 왕자 (0) | 2021.09.14 |
백준 15686 치킨배달 (0) | 2021.08.31 |
백준 1339 단어수학 (0) | 2021.08.31 |
Comments