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

2020. 6. 24. 16:22Javascript/알고리즘

1. 문제 설명

 

 

 문제 설명을 보고 내가 난독증인가 했다. 나만 이해를 못한건가 싶어서 바로 질문하기 버튼을 누르니, 나같은 사람이 정말 많았다. 출제자도 논란이 많은 것을 알고 그런지 모르겠지만, 문제 맨 밑에 H-index에 대한 설명이 담긴 위키링크를 걸어뒀다.  위키에서는 H-index를 다음과 같이 구하라고 써있었다.

 

 

  1.  배열을 내림차순으로 정렬해라.

  2.  인덱스 번호[배열 인덱스 + 1] <= 배열 요소(배열[인덱스])의 조건을 만족하는 마지막 인덱스가 H-index다. 

 

 만약 [3, 1, 4, 2]가 입력으로 들어온다면,

  1. [3, 1, 4, 2] => 내림차순 정렬: [4, 3, 2, 1]

  2. index + 1 <= array[idx]를 만족하는 마지막 인덱스는 2

  3. 따라서 H-index는 2가 된다.

 

 

2. 프로그램 코드

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