2월 7일 TIL

이승원·2024년 2월 8일
0

TIL

목록 보기
20/75
post-thumbnail

프로그래머스 코딩테스트 [ H-Index ]

Github 링크

  • 이 문제는 보기 드문 이상한 문제였다. 발표한 논문 N 편중, h번이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h 의 최댓값을 구하는게 H-Index다.
  • 여기서 문제는 h 번이상 인용된 논문은 0 부터 최댓값이 10000으로 해야되는건지, 아니면 각논문의 인용횟수로 순회를 해야하는건지, 정확한 정보가 없다. 그리고 만약에 H-Index를 구하지 못하는 상황도 있을텐데, 그럴때는 뭐를 리턴해야하는건지의 대한 정보도 일절없다. 질문하기 게시판을 보니 사람들이 많이 화가 나있었더라.. 나도 테케 9번만 안되길래, 별의별 시도를 다해봤지만, 결국 문제에서 안나온 H-Index를 못했을때는 전체 배열의 길이를 리턴하는걸 어떤분이 적어주셔서 통과하게 되었다. 어쨋든 내 코드는 아래와 같다.
import Foundation

func solution(_ citations:[Int]) -> Int {

    
    let min = citations.min()!
    let max = citations.max()!
    
    for h in stride(from:max, through: min, by: -1){
        let aboveH = citations.filter{$0 >= h}
        let countH = aboveH.count
        //let countRest = citations.count - countH
        //&& countRest <= h
        if countH >= h {
            return h
        }
    }

    return citations.count
}
profile
개발자 (진)

0개의 댓글