Skip to content

OddOccurrencesInArray

문제 설명

배열 A에서 짝을 이루지 못하는 유일한 숫자를 찾는 문제. 배열에는 짝을 이루는 숫자들이 있으며, 단 하나의 숫자만 짝이 없다.

예제

입력 (A)결과
[9, 3, 9, 3, 9, 7, 9]7
[1, 1, 2, 2, 3]3
[42]42

풀이

Set을 활용하여 한 번 등장한 숫자는 추가, 두 번째 등장하면 삭제. 마지막에 남은 값이 정답.


코드

typescript
function solution(A: number[]): number {
  const set = new Set<number>()

  for (let element of A) {
    if (set.has(element)) set.delete(element)
    else set.add(element)
  }

  return +Array.from(set.values())[0]
}

시간 복잡도

  • 배열 순회: O(N)
  • Set 추가/삭제: 평균 O(1)
  • 전체: O(N)

실행 예제

typescript
console.log(solution([9, 3, 9, 3, 9, 7, 9])) // 출력: 7
console.log(solution([1, 1, 2, 2, 3])) // 출력: 3
console.log(solution([42])) // 출력: 42