알고리즘

[codility] 풀어보기 - PermCheck

Dohoon 2017. 9. 29. 12:15

Lesson 4-1  - PermCheck

내용 : Check whether array A is a permutation.

시간 복잡도 : O(N)

성공한 코드

function solution(A) { // write your code in JavaScript (Node.js 6.4.0) let A_len = A.length; let total = A_len*(A_len+1)/2; let rt_val = 0; let tmp_arr = {}; for(i in A) { rt_val += A[i]; tmp_arr[(A[i]-1).toString()] = A[i]; /* for [1,4,1] antisum test case */ } if(rt_val==total && Object.keys(tmp_arr).length == A.length) { return 1; } else { return 0; } }

느낀 점 : 

  • 조건을 잘 봐야 함, 조건에 중복된 값이 들어가면 안된다는 조건이 없었음.
  • 시간복잡도 때문에 이것도 약간 어거지리즘(어거지 + 알고리즘),
  • 다른 분들의 답변도 그다지 딱히 확~~ 이거다 싶은 코드는 없었음,