코린이의 소소한 공부노트

[LeetCode/Easy] 1720. Decode XORed Array 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1720. Decode XORed Array

무지맘 2023. 1. 2. 23:27

1. Input

1) 정수 배열 encoded

- encoded의 길이는 n-1이다.

2) 정수 first

 

2. Output

1) 다음 규칙을 이용해 해독한 배열 arr

- arr의 길이는 n이다.

// 규칙

- arr[0] == first

- encoded[i] == arr[i] XOR arr[i+1]

 

3. Constraint

1) 2 <= n <= 10^4

2) 0 <= encoded[i] <= 10^5

3) 0 <= first <= 10^5

 

4. Example

Input: encoded = [1,2,3], first = 1 -> Output: [1,0,2,1]

설명:

- encoded[0] == 1 <- arr[0] XOR arr[1] == 1 ^ 0 == 1

- encoded[1] == 2 <- arr[1] XOR arr[2] == 0 ^ 2 -> 00 ^ 10 == 10 -> 2

- encoded[2] == 3 <- arr[2] XOR arr[3] == 2 ^ 3 -> 10 ^ 01 == 11 -> 3

 

5. Code

1) 첫 코드(2022/06/03)

int len = encoded.length+1;
int[] arr = new int[len];
arr[0] = first;
for(int i=0 ; i<len-1 ; i++){
    arr[i+1] = encoded[i]^arr[i];
} // for i
return arr;

  - xor로 인코딩한 것은 xor로 디코딩이 된다.