[Level 2 / 정렬] H-Index + Swift

sanghee·2021년 8월 30일
0

🙈코딩테스트

목록 보기
12/52
post-thumbnail

H-Index

코딩테스트 연습 - H-Index

나의 풀이

처음에는 range를 n...0으로 작성해도 동작할 줄 알고 썼다가, 돌리는 중에 에러가 났다. 그래서 0...n으로 작성한 이후 reversed함수를 써서 구현하였다.

변수 n같은 경우는 사실 한번밖에 쓰지 않아서 따로 정의하지 않아도 되지만, 문제에서 n이 등장하였으므로 명시적으로 보이기 위해 정의하였다.

코드를 제출하고 나서, return 0은 빼도 되지 않나? 라는 생각이 들었다. 당연하게 0편 이상 인용된 논문이 0편 이상일테니까. for문에서 1까지 돌았는데도 h를 못찾은 경우에는 당연히 0이 나오지 않나 해서이다. 하지만 플레이그라운드(여기서 코테를 푼다)에서 error: missing return in a function expected to return 'Int'라는 메세지가 떴다. 함수에 반드시 리턴값이 있어야 한다고 떠서 return 0은 지우지 않았다.

func solution(_ citations:[Int]) -> Int {
    let n = citations.count
    
    for h in (0...n).reversed() {
        if citations.filter({ $0 >= h }).count >= h {
            return h
        }
    }
    
    return 0
}
profile
👩‍💻

0개의 댓글