백준 3009 : 네번째 점

그냥 직사각형을 만들라고 했으면 좀 골때렸겠지만 축에 평행하기때문에 쉽게 해결할 수 있다

 

가령 점 3개가 각각 (3, 5), (5, 5), (5, 3) 이라고 해보자. 그렇다면 정답은 (3, 3)이 되어야 할 것이다

여기서 간단하게 생각해보면 숫자가 하나씩만 나온 x좌표와 y좌표가 정답이 된다는것이다.

 

따라서 이를 이용해서 코드를 짜 주면된다. 나는 좀 길게 짰는데, XOR을 사용하는것도 방법이다

 

#include <stdio.h>

int solve() {
    int axis[3][2];
    for(int i=0;i<3;i++) {
        for(int j=0;j<2;j++) {
            scanf("%d", &axis[i][j]);
        }
    }

    if(axis[0][0] != axis[1][0] && axis[0][0] != axis[2][0])
        printf("%d ", axis[0][0]);
    else if(axis[1][0] != axis[0][0] && axis[1][0] != axis[2][0])
        printf("%d ", axis[1][0]);
    else if(axis[2][0] != axis[0][0] && axis[2][0] != axis[1][0])
        printf("%d ", axis[2][0]);

    if(axis[0][1] != axis[1][1] && axis[0][1] != axis[2][1])
        printf("%d\n", axis[0][1]);
    else if(axis[1][1] != axis[0][1] && axis[1][1] != axis[2][1])
        printf("%d\n", axis[1][1]);
    else if(axis[2][1] != axis[0][1] && axis[2][1] != axis[1][1])
        printf("%d\n", axis[2][1]);
    }
 
int main() {
    solve();
    return 0; 
}

 

더 쉽게 풀수 있을 것 같은데 안풀려서 짜증난다 ㅠ