알고리즘

[codility] 풀어보기 - MissingInteger

Dohoon 2017. 10. 12. 11:19



Lesson 4-3  - MissingInteger

내용 : Find the smallest positive integer that does not occur in a given sequence.

시간 복잡도 : O(N)

성공한 코드 :

function solution(A) { // write your code in JavaScript (Node.js 6.4.0) let tmp_obj = {}; let tmp_arr = new Array(); let rt_val = 1; let all_tot = 0; let ele_tot = 0; for(let i=0;i<A.length;i++) { if(A[i] > 0) { tmp_obj[A[i]] = 0; } } tmp_arr = Object.keys(tmp_obj); if(Object.keys(tmp_arr).length > 1 || tmp_arr[Object.keys(tmp_arr)[0]] == 1) { for(i=1;i<=tmp_arr[tmp_arr.length-1];i++) { rt_val = i+1; if(tmp_arr[i-1] != i.toString()){ rt_val=i; break; } } } return rt_val; }


느낀 점 : 

  • 어쩌다 보니 한방에 성공
  • 값이 채워진 기본 배열을 만드는게 싫어서 다른 사람들과 미묘하게 다름
  • 알고리즘 문제에 if 를 저렇게 많이 써도 되는가는 고민사항