Codility – OddOccurrencesInArray

문제

https://app.codility.com/programmers/lessons/2-arrays/odd_occurrences_in_array/


정답

def solution(A):
    answer = 0
    for a in A:
        answer ^= a
    return answer

풀이

XOR 특성을 알고 있는지 묻는 문제입니다.

XOR 연산은 이진수의 동일한 자리 값이 같을 경우 0이 되고, 다를 경우 1이 됩니다.

동일한 수는 이진수가 같기 때문에, XOR 연산을 하여 0을 만들 수 있습니다. 이 특성을 중복 제거에 활용합니다.

A배열의 모든 값을 XOR 연산 하면 중복되는 값은 0으로 제거되고 하나의 값만 남게 됩니다.


  • XOR은 다른 문제에서도 많이 활용되기 때문에 숙지하면 큰 도움이 됩니다.

Post Author: Jinn