몸과 마음이 건전한 SW 개발자

프로그래머스 [Lv. 2] H-Index {언어 : JavaScript} 본문

알고리즘

프로그래머스 [Lv. 2] H-Index {언어 : JavaScript}

스위태니 2024. 3. 11. 20:19

문제 링크

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

 

프로그래머스

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

programmers.co.kr

정답 코드

function solution(citations) {
    let answer = 0;
    const totalCnts = citations.length;
    const sortCitations = citations.sort((a, b) => b - a);
    for (let idx = 0; idx < totalCnts; idx++) {
        if (idx < citations[idx]) {
            answer = idx + 1
        } else {
            break
        }
    }
    return answer;
}

풀이 방법

  1. h-index의 최대값을 구하기 위해서 내림차순 정렬을 한다.
  2. 현재 값과 index를 비교해서 크다면 answer += 1 또는 현재 인덱스값을 넣는다.
  3. 현재 값이 작거나 같다면 더 탐색할 필요가 없으므로 break

느낀점

  • 문제가 잘 이해가 가지 않는다.