[swift] H-Index

ohtt-iOS·2020년 12월 17일
0

프로그래머스

목록 보기
6/9
post-thumbnail

코드는 Swift로 작성하였습니다.
제가 직접 작성한 코드라 최적의 코드가 아닐 수 있음을 알려드립니다. 🐹


문제는 저작권 관련 문제가 있을 수 있어서 적어두지 않았습니다.



✍🏻 생각정리

굉장히 간단한 문제라고 생각했다 ..,
그치만 제출을 하고 깨달았다. 보자마자 번뜩이는 아이디어를 가지고 푸는 문제가 아니었음을...



👩🏻‍💻 코드

이 코드는 O(N2)O(N^2)의 시간복잡도를 가지는 정말 좋지않은 코드입니다.
그 아래에 좋은 코드를 추가해두었습니다 :)

func solution(_ citations:[Int]) -> Int {
    var result = 0
    let citations = citations.sorted(by: >)
    
    while true {
        var resultCount = 0
        for i in citations {
            if i >= result {
                resultCount += 1
            }
            if resultCount >= result { break } 
        }
        
        
        if result > resultCount {
            return result - 1
        }
        result += 1
    }
    
    return result
}


🥺 좋은 코드

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


🤦🏻‍♀️ 반성하기

시간이 이렇게나 차이가 많이 난다 ...

문제 풀기전에 끄적였던 걸 보면 생각해볼법한 아이디어였는데 ...,
너무 생각없이 코드를 구현한 것 같다.
오늘을 계기로 반성을 많이 했다. 좀 더 좋은 방법이 없을지 항상 고민하기! 시간복잡도 생각하기!

profile
오뜨 삽질 🔨 블로그

0개의 댓글