세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.
직사각형의 네 번째 점의 좌표를 출력한다.
5 5
5 7
7 5
7 7
직사각형 네 점은 x좌표, y좌표가 각각 2개씩 같은 것을 이용하여 세 점이 주어졌을 때 다른 좌표와 겹치지 않는 x좌표값, y좌표값이 네번째 점이 됨.
XOR 연산은 같으면 0, 다르면 1을 나타내는데, A라는 숫자가 있을 때 자기 자신의 값으로 XOR 연산을 하면 0이 나오게 되고 → (A^A = 0)
자신과 0을 XOR 연산하면 자기 자신이 그대로 나오게 됨 → (A^0 = A)
이를 이용하여 x좌표 3개, y좌표 3개를 XOR 연산하면 나머지 한 점의 좌표가 나오게 되는 원리.
x1과 x2가 같다고 가정했을 때 x1^x2 = 0, 이를 x3과 연산하면 x3^0 = x3
#include <iostream>
using namespace std;
int main(void)
{
int x1, x2, x3, y1, y2, y3;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
cout << int(x1^x2^x3) << " " << int(y1^y2^y3) << "\n";
}
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int x4 = 0, y4 = 0;
for (int i = 0; i < 3; i++) {
x4 ^= sc.nextInt();
y4 ^= sc.nextInt();
}
System.out.println(x4 + " " + y4);
}
}