Skip to content

Latest commit

ย 

History

History

OddOccurrencesInArray

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
ย 
ย 
ย 
ย 

[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];
}