[LeetCode] 1863. Sum of All Subset XOR Totals

Chobby·3일 전
1

LeetCode

목록 보기
619/650

😎풀이

  1. 모든 배열 요소의 XOR 계산을 수행할 헬퍼함수 정의
  2. 백 트레킹을 통한 dfs로 모든 서브셋을 구함
  3. 구해진 서브셋을 순회
    3-1. 모든 셋의 XOR 합산 결과를 누산
  4. 결과 반환환
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)
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글