Skip to content

Files

Latest commit

4a099ff ยท Dec 10, 2020

History

History
28 lines (20 loc) ยท 656 Bytes

File metadata and controls

28 lines (20 loc) ยท 656 Bytes

[Codility - Lesson 2 Arrays] OddOccurrencesInArray

image

๋‹ค๋ฅธ ํ’€์ด - XOR

๋‹ค๋ฅธ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ XOR ์—ฐ์‚ฐ์„ ํ†ตํ•ด ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๊ธฐ๋„ ํ•˜๋‹ค.

XOR ์—ฐ์‚ฐ์€ ์ž…๋ ฅ๊ฐ’์ด ๊ฐ™์ง€ ์•Š์œผ๋ฉด 1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • 0 XOR 0 = 0
  • 0 XOR 1 = 1
  • 1 XOR 0 = 1
  • 1 XOR 1 = 0

๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • A == B : A ^ B = 0
  • A == B != C : A ^ B ^ C = C

์ด๋ฅผ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

int ans = A[0];
for (int i = 1; i < A.length; i++) {
    ans = ans ^ A[i];
}