본문으로 바로가기

Description

하나의 원소만 한개의 값을 가지고 나머지는 2개씩 값을 가지고 있는 배열이 있을때 하나의 원소 반환하는 문제입니다.

Solution 1. 비트연산 - XOR

public static int lonelyinteger(List<Integer> a) {

    int result = 0;
    for(Integer num : a){
        result = result^num;
    }
    return result;
}

비트가 같으면 0, 다르면 1이 되는 XOR 연산을 통해 쌍이 아닌 값을 뽑아 낼 수 있습니다.

((2^2)^(1^1)^(4^4)^(5)) => (0^0^0^5) => 5.

Reference

 

Lonely Integer | HackerRank

Find the unique element in an array of integer pairs.

www.hackerrank.com