99클럽 코테 스터디 19일차 TIL [LeetCode] Find The Original Array of Prefix Xor (Java)

민경·2024년 6월 16일

문제

[LeetCode] Find The Original Array of Prefix Xor

틀린 코드

class Solution {
    public int[] findArray(int[] pref) {
        int n = pref.length;
        int[] arr = new int[n];
        arr[0] = pref[0];
        for(int i = 1; i < n; i++) {
            arr[i] = arr[i-1] ^ pref[i];
        }
        return arr;
    }
}

틀린 이유

문제에 대한 이해가 잘못 됐다.
주어진 pref 배열의 요소들을 연속 XOR 연산한 결과를 리턴했다.

풀이

XOR 연산을 하기 전 pref 배열의 원래 배열을 찾는 문제
pref[i]pref[i-1]과 XOR 연산하면 원래 값을 구할 수 있다.

XOR 연산이란?

XOR(배타적 논리합, Exclusive OR).
두 비트가 서로 다를 때 1을, 같을 때 0을 반환한다.

정답 코드

class Solution {
    public int[] findArray(int[] pref) {
        int n = pref.length;
        int[] arr = new int[n];
        arr[0] = pref[0];
        for(int i = 1; i < n; i++) {
            arr[i] = pref[i] ^ pref[i-1];
        }
        return arr;
    }
}
profile
강해져야지

0개의 댓글