
이번 문제는 세 개의 점이 주어졌을 때, 직사각형을 완성하기 위한 네 번째 점의 좌표를 구하는 문제이다. 직사각형의 성질상 각 좌표의 x값과 y값은 각각 두 번씩 등장하게 된다.
따라서 주어진 세 점 중에서 두 번 등장하는 값이 아닌, 한 번만 등장하는 x값과 y값을 찾아 해당 값을 조합하면 네 번째 점의 좌표를 구할 수 있다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp3
{
internal class geometry1
{
static void Main(string[] args)
{
//백준 3009 네 번째 점
string[] inputA = Console.ReadLine().Split();
string[] inputB = Console.ReadLine().Split();
string[] inputC = Console.ReadLine().Split();
int A, a, B, b, C, c;
int D = 0; int d = 0;
A = int.Parse(inputA[0]); a = int.Parse(inputA[1]);
B = int.Parse(inputB[0]); b = int.Parse(inputB[1]);
C = int.Parse(inputC[0]); c = int.Parse(inputC[1]);
//x축과 y축이 서로 겹치는 수가 있는지 확인
if (A == B)
{
D = C;
}
else if (A == C)
{
D = B;
}
else
{
D = A; // B == C인 경우
}
if (a == b)
{
d = c;
}
else if (a == c)
{
d = b;
}
else
{
d = a; // b == c인 경우
}
Console.WriteLine(D + " " + d);
}
}
}

사실 이 문제는 XOR 연산자를 활용하면 더 간단하게 해결할 수 있다.
XOR 연산은 같은 값이 두 번 등장하면 서로 상쇄되고, 한 번만 등장하는 값만 남는 특징이 있다.
이를 이용하여 세 점의 x좌표와 y좌표를 각각 XOR 연산하면, 한 번만 등장하는 값이 남게 되어 네 번째 점의 좌표를 구할 수 있다.
int x = A ^ B ^ C;
int y = a ^ b ^ c;
Console.WriteLine(x + " " + y);
'코딩 테스트 > 백준' 카테고리의 다른 글
| 백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 9063 대지 (0) | 2026.03.31 |
|---|---|
| 백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 15894 수학은 체육과목 입니다. (0) | 2026.03.30 |
| 백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 1085 직사각형에서의 탈출 (0) | 2026.03.30 |
| 백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 27323 직사각형 (0) | 2026.03.29 |
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 11653 소인수 분해 (0) | 2026.03.29 |