코드는 Swift로 작성하였습니다.
제가 직접 작성한 코드라 최적의 코드가 아닐 수 있음을 알려드립니다. 🐹
문제는 저작권 관련 문제가 있을 수 있어서 적어두지 않았습니다.
굉장히 간단한 문제라고 생각했다 ..,
그치만 제출을 하고 깨달았다. 보자마자 번뜩이는 아이디어를 가지고 푸는 문제가 아니었음을...
이 코드는 의 시간복잡도를 가지는 정말 좋지않은 코드입니다.
그 아래에 좋은 코드를 추가해두었습니다 :)
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
}
시간이 이렇게나 차이가 많이 난다 ...
문제 풀기전에 끄적였던 걸 보면 생각해볼법한 아이디어였는데 ...,
너무 생각없이 코드를 구현한 것 같다.
오늘을 계기로 반성을 많이 했다. 좀 더 좋은 방법이 없을지 항상 고민하기! 시간복잡도 생각하기!