PS알못 OrbitHv의 PS logo PS알못 OrbitHv의 PS

태그:

직사각형의 세 좌표가 주어졌을 때 나머지 좌표를 찾는 문제입니다. 문제의 조건에 따로 써있지는 않지만 직사각형의 각 변은 x축 또는 y축에 평행합니다. 이 조건이 들어간다면 문제가 아주 쉬워집니다. 이러한 직사각형의 좌표는 항상 (a,b),(a,d),(c,b),(c,d)가 됩니다. 각 점의 좌표를 xor 연산을 해본다면 x좌표: a^a^c^c=0^0=0, y좌표: b^b^d^d=0^0=0이 되고, xor 연산의 역연산은 xor 연산 자신이므로 만약 한 점이 빈다면 나머지 세 점의 xor 연산으로 구할 수 있습니다. 예를 들어 (c,b) 점이 비어있다면 나머지 세 점의 xor 연산값을 구하면 되는 것이죠. x좌표는 a^a^c=0^c=c, b^d^d=b^0=b가 되므로 우리가 원하는 점이 나오게 됩니다.

소스 코드

언어 코드 시간
Python 3 코드(Github) / 코드(백준) 2020-03-27 23:54:01