본문 바로가기

카테고리 없음

[프로그래머스] H-Index (JS) - sort

문제

https://school.programmers.co.kr/learn/courses/30/lessons/42747

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코드

내 풀이

function solution(citations) {
    citations.sort((a,b)=>a-b);
    
    let h=0;
    for (let i=citations[citations.length-1]; i>=0; i--){
        if(citations.filter(n => n>=i).length>=i){
            h=i;
            break;
        }
    }
    
    return h;
}

for문 안에 filter로 한 번 더 돌기 때문에 시간복잡도 상 안 좋은 코드인 것 같다.

 

다른 사람 풀이

function solution(citations) {
    citations = citations.sort((a, b) => b - a);
    let i = 0;
    while (i + 1 <= citations[i]) {
        i++;
    }
    return i;
}

 

이 풀이가 훨씬 간단하고 시간복잡도 상으로도 좋은 풀이 같다.

참조

https://laycoder.tistory.com/211