2425.js
/** ------------------------------------------------------------------------------
*
* 2425. Bitwise XOR of All Pairings
* Topics: Bit Manipulation
* https://leetcode.com/problems/bitwise-xor-of-all-pairings/?envType=daily-question&envId=2025-01-16
*
------------------------------------------------------------------------------ */
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number}
*/
var xorAllNums = function (nums1, nums2) {
return xor(nums1, nums2) ^ xor(nums2, nums1)
}
/**
* XOR의 성질
* 1. a ^ a = 0 (동일한 값은 0)
* 2. a ^ 0 = a (원래 값이 유지됨)
* 3. a ^ b = b ^ a (순서 바뀌어도 결과 동일)
*
* 배열의 길이가 홀수면 반대편 배열의 요소를 XOR
*/
const xor = (a, b) => (a.length % 2 ? b.reduce((x, y) => x ^ y) : 0)
console.log(xorAllNums([2, 1, 3], [10, 2, 5, 0]))