LeetCode 2997번 정답 및 해설

Madang Garden·2024년 4월 29일

Leetcode 메모

목록 보기
1/1

2997. Minimum Number of Operations to Make Array XOR Equal to K

전제 지식

  • XOR 연산은 순서와 상관없다.
  • XOR 연산은 두 비트가 다를 경우 1을 반환하고 같을 경우 0을 반환하는 특성이 있다.
    - 0 XOR 0 = 0
    - 1 XOR 1 = 0
    - 0 XOR 1 = 1
    - 1 XOR 0 = 1

힌트

  • 이 문제에서는 몇 번의 연산이 필요한지만 반환하면 된다.
  • 배열의 모든 원소를 XOR 연산을 진행하여 얻은 값을 k와 XOR 하면 0이 되어야 한다.
  • 각 num을 k와 XOR 연산을 진행하면 비트가 불일치하는 수만큼 1이 등장하게 된다.

정답 예시

function minOperations(nums: number[], k: number): number {
    nums.forEach((num) => {
        k ^= num
    })
    return countOnes(k)

};
function countOnes(n: number) {
    let result = 0
    while (n > 0) {
        result += n & 1
        n = n >> 1
    }
    return result
}

profile
삽질 스페셜리스트, 프로 사부작러 | 될 때까지 하면 100%

0개의 댓글