세 점을 갖고 상대적으로 위치를 찾아내는 방법도 있겠지만, 생각보다 귀찮(?)아서 1001개짜리 배열 \(x\)와 \(y\)을 이용해서 풀었다.
풀이는 이렇다.
1. 입력 받은 세 점의 좌표에 해당하는 원소들을 먼저 1씩 증가시켜준다.
2. \(x\)와 \(y\)배열을 1~1000까지 돌면서 원소가 1인 곳을 체크해서 답으로 저장해준다.
3. 찾은 좌표를 출력한다.
직사각형이기 때문에 네 점의 좌표는 항상 (a, c) , (a, d), (b, c), (b, d)의 형태를 유지한다는 점을 이용하였다. ( 항상 a, b, c, d가 2개씩 등장)
#include <bits/stdc++.h>
using namespace std;
int x[1001] = { 0 , };
int y[1001] = { 0 , };
int main() {
ios::ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
for (int i = 0; i < 3; i++) {
int a, b;
cin >> a >> b;
x[a]++;
y[b]++;
}
int ans_x = -1, ans_y = -1;
for (int i = 0; i < 1001; i++) {
if (x[i] == 1) ans_x = i;
if (y[i] == 1) ans_y = i;
if (ans_x != -1 && ans_y != -1)
break;
}
cout << ans_x << ' ' << ans_y;
return 0;
}
'BOJ_단계별로 풀어보기(9단계~) > [8단계] 기본 수학2' 카테고리의 다른 글
[백준 3053] 택시 기하학 (0) | 2021.07.29 |
---|---|
[백준 4153] 직각삼각형 (0) | 2021.07.28 |
[백준 1085] 직사각형에서 탈출 (0) | 2021.07.28 |
[백준 9020] 골드바흐의 추측 (0) | 2021.07.25 |
[백준 4948] 베르트랑 공준 (0) | 2021.07.25 |