TLI/코드카타

2024.06.18 TIL 코트카타 86번(H-Index)

jaeseonyoo 2024. 6. 18. 23:32
    fun solution(citations: IntArray): Int {
        var hIndex = 0
        citations.sort()

        for ((index,citation) in citations.withIndex()) {

            if(citation >= citations.size - index) {
                hIndex = citations.size - index
                break
            }
        }

        return hIndex
    }

 

풀이 과정

1. citations 배열을 오름차순 정렬한다.

2. citations를 for문으로 돌리면서 인용 횟수가 남은 논문 개수 이상이 되는 index를 찾는다.

3. 그 때의 남은 논문의 개수를 리턴한다.

 

포인트

- 오름차순으로 정렬하면 남은 논문들이 현재 논문 이상으로 인용이 되어있다.

- 남은 개수와 현재 논문의 인용 횟수를 기준으로 최대가 되는 h를 구할 수 있다.

- 인덱스가 적을 때 남은 개수가 많기 때문에 최댓값을 구할 수 있다.