본문으로 건너뛰기
yceffort
PostsSeriesTagsAbout🧪 Research
EN

Tweaks

theme
accent palette
film grain
minimal mode
BACK TO INDEX
◆ ESSAY
--min
--year
KOoriginal

mailMail icongithubtwitter
yceffort
•
© 2026
•
https://yceffort.kr
BACK TO INDEX
◆ ESSAY

Codility - Odd Occurrences in array

avatar
yceffort
2020-06-23 · 1분
1min
2020year
KOoriginal
algorithmjavascript

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값으로 접근하는 속도가 빠른듯.

https://app.codility.com/demo/results/trainingBF4N34-BBK/

관련 글

  • #javascript#algorithm

    자바스크립트로 메모이제이션 구현하기

    까먹지 않게 기억해두기

    2020-11-23·1분
  • #javascript#algorithm

    자바스크립트로 구현해보는 다양한 정렬

    ## 거품(버블)정렬 - 가까운 두 원소를 비교해서 정렬하는 방식이다. - `O(N^2)` - 코드가 단순하고 구현하기 쉽다 - 느리다. ![bubble-sort](https://upload.wikimedia.org/wikipedia/commons/3/37/Bubble_sort_animation.gif) ```javascript function bub...

    2020-07-01·3분
  • #algorithm#javascript

    Codility - Nesting

    ## Nesting ### 문제 `(`와 `)`로 이루어진 문자열이 있다. 이 문자열의 `(` `)` 짝이 맞게 이루어져 있는지 확인하라. ### 풀이 ```javascript function solution(S) { const split = S.split('') const stack = [] for (let i of split...

    2020-06-25·1분
  • #algorithm#javascript

    Codility - Missing Integer

    ## Missing Integer ### 문제 주어진 배열 A에 빠져 있는 가장 작은 양의 정수를 구하시오 ``` A=[1, 3, 6, 4, 1, 2] 이라면 답은 5 A=[1, 2, 3] 이라면 답은 4 A=[-1, -3] 이라면 답은 1 ``` ### 풀이 ```javascript function solution(A) { // 배열 길...

    2020-06-24·1분

새 글을 놓치고 싶지 않으시다면 RSS로 구독해 주세요.

RSS 구독 →

yceffort — 프론트엔드 엔지니어입니다. 발표·기술 자문·기고 문의는 이곳에서 받고 있습니다.

← Back to the blogIssue on GitHub →