소프트웨어에 대한 모든 것

LeetCode 풀기 - 1829. Maximum XOR for Each Query 본문

알고리즘/LeetCode

LeetCode 풀기 - 1829. Maximum XOR for Each Query

앤테바 2021. 12. 18. 10:34
반응형

1829. Maximum XOR for Each Query

https://leetcode.com/problems/maximum-xor-for-each-query/

 

Maximum XOR for Each Query - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제)

솔루션1) XOR 교환 법칙, 결합 법칙

XOR의 교환 법칙, 결합 법칙의 특성을 알고 있다면 쉽게 풀 수 있는 문제입니다.

class Solution:
    def getMaximumXor(self, nums: List[int], maximumBit: int) -> List[int]:
        # xor ^ k = max_num
        # xor ^ xor ^ k = xor ^ max_num
        # 0 ^ k = xor ^ max_num
        # k = xor ^ max_num
        
        max_num = (1<<maximumBit) - 1        
        res = []
        xor = 0
        for n in nums:
            xor ^= n
            res.append(xor ^ max_num)
        return res[::-1]

XOR 수행 예시

 

반응형
Comments