반응형
자세한 문제는 여기서 보실 수 있습니다.
이 문제는 array에 있는 값이 다른 숫자의 갯수를 반환하는 문제 입니다.
A[0] = 2 A[1] = 1 A[2] = 1 A[3] = 2 A[4] = 3 A[5] = 1 이럴때 1,2,3이 있으므로 3이 반환됩니다.
해결 code는 다음과 같습니다
fun solution(A: IntArray): Int {
// write your code in Kotlin
A.sort()
var ans = 1
var check = A[0]
for(i in A.indices){
if(check != A[i]){
ans++
check = A[i]
}
}
return ans
}
그런데 이렇게 할경우 91%의 결과를 받습니다. (복잡도는 O(N*log(N)) or O(N) 입니다) 그 이유는 Array가 비어 있을 경우에 대한 처리가 없기 때문입니다. (제가 문제를 자세히 안 읽어서.. 그만..) 그래서 수정한 코드는
fun solution(A: IntArray): Int {
// write your code in Kotlin
if(A.size == 0){
return 0
}
A.sort()
var ans = 1
var check = A[0]
for(i in A.indices){
if(check != A[i]){
ans++
check = A[i]
}
}
return ans
}
단순히 위에 빈 array일 경우에 대한 처리만 해주면 됩니다. 그럼 100%의 결과를 확인 할 수 있습니다.(복잡도는 똑같습니다)
반응형
'2023년 이전 > Codility' 카테고리의 다른 글
Lesson7 - Brackets (0) | 2019.12.19 |
---|---|
Lesson6 - Triangle (0) | 2019.12.16 |
Lesson6 - MaxProductOfThree (0) | 2019.12.13 |
Lesson5 - CountDiv (0) | 2019.12.13 |
Codility - Lesson5 MinAvgTwoSlice (0) | 2019.12.13 |