직사각형을 만드는데 필요한 4개의 점 중 3개만 주어질 때, 주어지는 3개의 점들은 모두 각 x축 y축에 평행 하도록 하는 좌표만 주므로, 만약 [[1,4],[3,4],[3,10]]
이 주어졌을 때 중복 되는 배열의 원소 수는 소거한다. 그럼 중복 되지 않는 수가 나머지 한 점 이 된다. 그러므로 [1,10]
이 output으로 나와야 한다. 주어진 2차원 배열을 비정방형 행렬로 생각하여 풀어보자.
1 2 3 4 x좌표 y좌표 v = [[1 , 4 ] [0 ][0 ] [0 ][1 ] [3 , 4 ] == [1 ][0 ] [1 ][1 ] [3 ,10 ]] [2 ][0 ] [2 ][1 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 class Solution { public int [] solution(int [][] v) { int x, y; if (v[0 ][0 ]==v[1 ][0 ]){ x = v[2 ][0 ]; } else if (v[0 ][0 ]==v[2 ][0 ]){ x = v[1 ][0 ]; } else x = v[0 ][0 ]; if (v[0 ][1 ] == v[1 ][1 ]){ y = v[2 ][1 ]; } else if (v[0 ][1 ]==v[2 ][1 ]){ y = v[1 ][1 ]; } else y = v[0 ][1 ]; int [] answer = {x,y}; return answer; } }
XOR 연산자 사용하여 문제해결
1 2 3 4 5 6 7 8 9 10 11 12 13 class Solution { public int [] solution(int [][] v) { int [] answer = {0 ,0 }; for (int i=0 ; i<3 ; i++){ answer[0 ] ^= v[i][0 ]; answer[1 ] ^= v[i][1 ]; } return answer; } }