Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 알고리즘
- Laravel
- 티스토리챌린지
- 99클럽
- 라라벨
- 파이썬 코테
- 코테
- 플러터
- Flutter
- 오블완
- 코딩테스트준비
- C++
- 안드로이드
- 코테 파이썬
- react
- ML
- Python
- 백준
- til
- 항해99
- c++ 코테
- 코딩테스트
- vue
- 파이썬
- 뷰
- 코딩테스트 준비
- flutter getx
- DP
- 개발자취업
- 개발자 취업
Archives
- Today
- Total
잡다로그
[Python/코테] LeetCode 2433. Find The Original Array of Prefix Xor 본문
Algorithm
[Python/코테] LeetCode 2433. Find The Original Array of Prefix Xor
날으는다람쥐 2024. 6. 15. 16:112433. Find The Original Array of Prefix Xor
문제: https://leetcode.com/problems/find-the-original-array-of-prefix-xor/description/

* 대충 번역: 크기가 n인 정수 배열 pref가 주어진다. pref[i] = arr[0] ^ arr[1] ^ ... ^ arr[i] 을 만족하는 크기가 n인 배열 arr을 찾아 반환하라. ^는 비트 XOR 연산자이다.
알고리즘 설계
💡idea.
문제 조건을 수식으로 만들면 다음과 같다.
pref[0] = arr[0]
pref[1] = arr[0] ^ arr[1]
pref[2] = arr[0] ^ arr[1] ^ arr[2]
...
arr[0] = pref[0] 이므로, 아래 두 식이 같다.
pref[1] = pref[0] ^ arr[1]
# 즉,
arr[1] = pref[0] ^ pref[1]
따라서, 다음과 같은 수식도 성립한다.
pref[2] = pref[1] ^ arr[2]
# 즉,
arr[2] = pref[1] ^ pref[2]
결국 아래와 같은 식이 성립하게 된다.
arr[i] = pref[i] ^ pref[i-1] # 0 < i
🎲step.
초기값 arr[0] = pref[0] 을 지정해주고, 찾은 식을 대입하여 arr 값들을 계산해낸.
알고리즘 구현
class Solution(object):
def findArray(self, pref):
"""
:type pref: List[int]
:rtype: List[int]
"""
n = len(pref)
arr = [0]
arr[0] = pref[0]
for i in range(1, n):
# arr[i] = pref[i] ^ pref[i-1]
arr.append(pref[i] ^ pref[i-1])
return arr
나다어
나는 다음에 어떻게 풀까
비트 연산자는 다음과 같은 설명을 만족한다. (출처: https://wikidocs.net/20704)
- 비트 단위로 연산을 수행합니다.
- 0은 거짓으로 1은 참으로 연산하여 결과를 1과 0으로 반환합니다.
- "^(xor)"연산은 두개의 값이 다를 때만 참인 연산입니다.
'Algorithm' 카테고리의 다른 글
| [99클럽 코테 스터디] 18일차 TIL - 문자, Iterator for Combination (0) | 2024.06.18 |
|---|---|
| [99클럽 코테 스터디] 17일차 TIL - 배열, Group the People Given the Group Size They Belong To (0) | 2024.06.17 |
| [99클럽 코테 스터디] 16일차 TIL - 배열, Number of Good Pairs (0) | 2024.06.15 |
| [99클럽 코테 스터디] 15일차 TIL - 배열, Shuffle the Array (0) | 2024.06.15 |
| [Python/코테] 프로그래머스 순위 (0) | 2024.06.15 |
Comments