[백준] 3009

ninano05·2026년 3월 30일

XOR을 활용한 다른 값 찾기

XOR는 같은 값에 대해서 0을 나타낸다.
즉, a^a는 0이다.
따라서 홀수 개인 경우 a^a^b = b로 다른 값 검출이 가능하다.

If문을 활용한 조건 확인

import java.util.*;
import java.io.*;

public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int[] X = new int[3];
        int[] Y = new int[3];

        StringTokenizer st;
        for(int i=0; i<3;i++) {
            st = new StringTokenizer(br.readLine(), " ");
            X[i] = Integer.parseInt(st.nextToken());
            Y[i] = Integer.parseInt(st.nextToken());
        }

        int x;
        int y;

        if(X[0] == X[1]) {
            x = X[2];
        } else {
            if(X[0] == X[2]) x = X[1];
            else x = X[0];
        }
        if(Y[0] == Y[1]) {
            y = Y[2];
        } else {
            if(Y[0] == Y[2]) y = Y[1];
            else y = Y[0];
        }

        bw.write(x+" "+y);

        bw.flush();
        bw.close();
        br.close();
    }
}

XOR(^)를 활용한 조건 확인

import java.util.*;
import java.io.*;

public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int x = 0;
        int y = 0;

        StringTokenizer st;
        for(int i=0; i<3;i++) {
            st = new StringTokenizer(br.readLine(), " ");
            x ^= Integer.parseInt(st.nextToken());
            y ^= Integer.parseInt(st.nextToken());
        }

        bw.write(x+" "+y);

        bw.flush();
        bw.close();
        br.close();
    }
}
profile
초보 개발자

0개의 댓글