문제
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
입력
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.
출력
직사각형의 네 번째 점의 좌표를 출력한다.
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
vector<pair<int, int> > v;
for(int i=0; i<3; i++) {
int x, y;
cin >> x >> y;
v.push_back(make_pair(x, y));
}
int x, y;
if(v[0].first == v[1].first) x = v[2].first;
else if(v[0].first == v[2].first) x = v[1].first;
else x = v[0].first;
if(v[0].second == v[1].second) y = v[2].second;
else if(v[0].second == v[2].second) y = v[1].second;
else y = v[0].second;
cout << x << " " << y << '\n';
return 0;
}
그냥 변수 3쌍을 쓰거나, x와 y의 배열을 따로둬서 짧게 풀 수 있었지만 pair 연습겸 써봤다.
알고리즘은 간단하다. 입력받은 x와 y값에서 이미 같은 값이 2개 존재한다면 나머지 좌표를 출력해주면 된다.
'PS > 백준' 카테고리의 다른 글
백준 / 수학 / 1002번 / 터렛 / C++ (0) | 2022.01.15 |
---|---|
백준 / 수학 / 3053번 / 택시 기하학 / C++ (0) | 2022.01.15 |
백준 / 수학 / 9020번 / 골드바흐의 추측 / C++ (0) | 2022.01.14 |
백준 / 수학 / 4948번 / 베르트랑 공준 / C++ (0) | 2022.01.13 |