Find the odd int

홀수 번 나타나는 정수 찾기

Codewars Linkarrow-up-right

문제

주어진 배열에서, 홀수 번 나타나는 정수를 찾아주세요. 단, 홀수 번 나타나는 정수는 항상 한개뿐입니다.

예를들어, [1, 1, 1, 1, 10] 에서 1은 4번 나타나고, 10은 1번 나타나므로, 홀수 번 나타나는 정수는 10 입니다.

// @param { Array } n

function findOddInt (n) {
    //happy coding!
}

문제 이해

정확한 이해를 위해 테스트 인자를 확인해 보자

expect(findOddInt([20,1,-1,2,-2,3,3,5,5,1,2,4,20,4,-1,-2,5])).to.eql(5);

expect(findOddInt([9])).to.eql(9);

expect(findOddInt([1, 1, 1, 1, 1, 1, 3, 3, 3])).to.eql(3);

expect(findOddInt([5, 6, 4, 6, 5, 7, 1, 5, 7, 6, 5, 7, 6, 4, 1])).to.eql(7);

특별히 더 요구하는 사항은 없다. 배열에서 들어오는 숫자중 반복 횟수가 정확히 홀수인 원소를 찾는다.

해결 방법

  1. 원소마다의 들어간 횟수를 체크하는데 이전에 체크한 원소인지 정확하게 판단한다.

  2. 체크한 원소는 따로 배열에 담는다.

  3. 홀수 개수인지 체크

  4. 맞다면 return

코드 구현

결과 분석

랜덤테스트 통과

harms280arrow-up-right, ChingChangChongarrow-up-right, oscar6654arrow-up-right, aaronbulnesarrow-up-right, ghismovdarrow-up-right, Jaykobeearrow-up-right's Codewars Solution

새로운 배열을 만들어서 findOddInt 함수의 인자 배열에서 원소가 key가 되고 그 key의 개수가 value가 된다. 전부다 담게 되면 value값이 홀수인 key를 리턴해 준다.

Unnamedarrow-up-right, classic016arrow-up-right, Fantom1991arrow-up-right, TroyMaederarrow-up-right, saiful_coderarrow-up-right, dany.dlinkerarrow-up-right's Codewars Solution

이거슨.. (https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Bitwise_XORarrow-up-right) 관한 solution인데 아직 잘 모르겠다.

Last updated