on your mark

[Codility]FirstUnique (Javascript) 본문

Coding Test

[Codility]FirstUnique (Javascript)

dev-olive 2022. 5. 11. 14:57

FirstUnique

1차 시도

A 배열의 요소의 마지막 순서와 첫번째 순서가 같으면 요소가 1개라는 의미이므로 고유값인 것을 의미

Detected time complexity: O(N\2)**

function solution(A) {
    let answer = A.filter( (ele) => {
        return A.indexOf(ele) === A.lastIndexOf(ele)
    })
    return answer.length > 0 ? answer[0] : -1;
}

timeout이 일어나서 수정

2차 시도

obj객체를 만들어 해결

function solution(A){
    let obj = {};
    for(let i=0; i<A.length; i++){
        obj[A[i]] = obj[A[i]] ? [0,0,0] : [1,i,A[i]]; //obj객체에 없으면 [0, blah]를 넣는다 :: obj객체에 있으면 [1, 위치, ele]를 넣는다.
    }

    let answer = Object.values(obj).filter(ele => ele[0] > 0); //obj객체에서 0인것 제외
    if(answer.length === 0) return -1;

    return answer.sort(function(a,b){ //정렬 후(1번째 값(위치) 기준으로) ele return 
        return a[1]-b[1]
    })[0][2]
}

'Coding Test' 카테고리의 다른 글

[Codility] StrSymmetryPoint (Javascript)  (0) 2022.05.11