프로그래머스 H-index JS

이명진·2022년 3월 23일
0

코드카타

목록 보기
12/68

문제를 봐도 이해가 안되어서 문제에 대한 힌트만 보려고 검색하게 되었다.

문제의 해석을 봐도 잘 이해가 안되었고 내가 이해한 방식대로 문제를 푸니까 맞았다.

내가 이해한 문제 해석이다.

일단 내림차순으로 정렬을 한다.
쭉 나열된 배열에서 인덱스+1과 요소들을 비교를 해서
인덱스+1 보다 요소들이 큰 값을 세는 것이다.
즉, 논문의 개수 중에서 인용 횟수가 논문의 개수와 같거나 증가된 값들을
선별해서 리턴하는 것이다.

문제를 풀면 이렇다

코드

function solution(citations) {
  let sortedArr = citations.sort((a,b)=>{return b-a})
  let hIndex=0;

 hIndex= sortedArr.map((x,i)=>{
  	if(x>=i+1){return i}
  })
hIndex = hIndex.filter(x=>{
    return x!== undefined
  })
return (hIndex.length)
}

리팩토링

쭉 코드들을 보다보니 map과 filter 를 하나의 과정으로 합칠수 있었다.

리팩토링 한 코드 이다.

function solution(citations) {
  let sortedArr = citations.sort((a,b)=>{return b-a})
sortedArr = sortedArr.filter((x,i)=>{
    return x>=i+1
  })
return (sortedArr.length)
}
profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글