본문 바로가기

Algorithm

[HackerRank/js] Lonely Integer (배열 내 중복되지 않은 숫자 찾기)

문제 : 

Given an array of integers, where all elements but one occur twice, find the unique element.

 

 

처음에는 지난번 신고회수 누적처럼 map에 담아서 풀고 있었는데 

좀 더 간단한 방법이 있어 다시 풀었다.

 

function lonelyinteger(a) {
   let unique = a.filter(function (val) {
       return a.indexOf(val) === a.lastIndexOf(val)
   })
   return unique[0]
}

 

indexOf(val)은 특정 값과 일치하는 부분을 배열 앞에서 부터 찾고 

lastIndexOf(val)은 역순으로 찾는다. 

 

위 방법으로 배열 내에 중복된 값을 가진 숫자를 filter해 준 후 return