October 2nd 2018
There will always be only one integer that appears an odd number of times.
배열이 주어지면, 배열 내 홀수 갯수 만큼 있는 요소를 반환하는 문제입니다.
function findOdd(A) {
var count = {};
A.forEach(cur => (count[cur] ? (count[cur] += 1) : (count[cur] = 1)));
for (let key in count) {
if (count.hasOwnProperty(key)) {
if (count[key] % 2 !== 0) {
return Number(key);
}
}
}
}
iteration을 한 번 돌면서 배열의 요소 갯수를 카운트했습니다. 이후 for in 문으로 갯수가 홀수인 요소를 반환했습니다.
다른 풀이들도 저의 풀이와 비슷했지만, 아래의 풀이는 비트단위 연산자를 사용해 풀이를 해서 참고차 가져왔습니다.
function findOdd(A) {
return A.reduce(function(c, v) {
return c ^ v;
}, 0);
}