
😎풀이
- 모든 배열 요소의 XOR 계산을 수행할 헬퍼함수 정의
- 백 트레킹을 통한 dfs로 모든 서브셋을 구함
- 구해진 서브셋을 순회
3-1. 모든 셋의 XOR 합산 결과를 누산
- 결과 반환환
function subsetXORSum(nums: number[]): number {
const result = []
const subsets = []
function dfs(idx: number) {
if(idx === nums.length) {
result.push([...subsets])
return
}
dfs(idx + 1)
subsets.push(nums[idx])
dfs(idx + 1)
subsets.pop()
}
dfs(0)
return result.reduce((acc, cur) => acc + calculateXOR(cur), 0)
};
function calculateXOR(nums: number[]) {
return nums.reduce((acc, cur) => acc ^ cur, 0)
}