- Published on
Codility - Odd Occurrences in array
- Author
- Name
- yceffort
2-2 Odd Occurrences in array
๋ฌธ์
์ซ์๋ก ์ด๋ค์ง ๋ฐฐ์ด์์ ํ์ ๋ฒ ๋ฑ์ฅํ๋ ์ซ์๋ฅผ ์ฐพ์์ ๋ฆฌํดํด๋ผ.
A[0] = 9 A[1] = 3 A[2] = 9
A[3] = 3 A[4] = 9 A[5] = 7
A[6] = 9
7์ ํ๋ฒ๋ง ๋ฑ์ฅํ๋ฏ๋ก 7์ ๋ฆฌํดํด์ผ ํ๋ค.
ํ์ด
function solution(A) {
// ๋ฑ์ฅํ๋ ์ซ์๋ฅผ ์ ์ฅํ๋ค.
const map = {}
// ์ซ์๋ฅผ ์ํํ๋ค
for (let i = 0; i <= A.length - 1; i++) {
const target = A[i]
// ํด๋น ์ซ์๊ฐ ์กด์ฌํ๋ค๋ฉด ํด๋น ํค๋ฅผ ์ ๊ฑฐํ๋ค.
if (map[target]) {
delete map[target]
// ํด๋น ์ซ์๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด (์ฒ์๋ฑ์ฅํ๋ค๋ฉด) ์ถ๊ฐํ๋ค.
} else {
map[target] = true
}
}
// ๋ฆฌํดํ๋ค.
return +Object.keys(map)[0]
}
ํด์ค
๋ฏฟ๊ฑฐ๋ ๋ง๊ฑฐ๋ ์ฑ๋ฅ์ O(N) or O(N*log(N))
๊ฐ ๋์๋๋ฐ, ์๊ฐ๋ณด๋ค key-value๊ฐ์ฒด์ key๊ฐ์ผ๋ก ์ ๊ทผํ๋ ์๋๊ฐ ๋น ๋ฅธ๋ฏ.