본문 바로가기

알고리즘

[정렬] H-Index 프로그래머스 Swift

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

 

코딩테스트 연습 - H-Index

H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표

programmers.co.kr

 

문제 이해하기가 생각보다 어려웠다.. 🤷

풀이방법

1. 숫자가 큰 순서대로 정렬 후 각 자리의 숫자와 자릿수를 비교 한다.

2. 자리수가 더 크거나 캍으면 그 자릿수를 반환한다.

 

- 예시

1. [0, 0, 0, 0] 이면 역 정렬 -> [0, 0, 0, 0]

2. 각 자릿수 비교 -> [0, 0, 0, 0] : [0, 1, 2, 3] = 0 리턴

import Foundation

func solution(_ citations:[Int]) -> Int {
    var sorted = citations.sorted(by: >)
    
    for index in 0..<citations.count {
        if (sorted[index] <= index) {
          return index
        }
    }

    return sorted.count
}

print(solution([3,0,6,1,5])) // 3
print(solution([1545, 2, 999, 790, 540, 10, 22])) // 6
print(solution([6,6,6,6,6,6])) // 6

 

반응형